我有一个表,其中2列代表用户ID。 ID的顺序可以是任何一种方式(取决于谁启动了该过程) 我需要为2个用户(无论哪种方式)的组合检索行。
要测试我在(user1,user2)上添加了一个键,在(user2,user1)上添加了一个键,但最终都没有使用。
我的问题是,你们认为最快/最低的开销是多少?
“传统”方式:
SELECT * FROM table WHERE (user1 = 1 AND user2 = 2) OR (user1 = 2 AND user2 = 1)
或者使用in():
SELECT * FROM table WHERE user1 IN (1, 2) AND user2 IN (1, 2)
我在这里假设没有记录存在user1 = user2,所以除非我遗漏了某些内容,否则两者都应该产生正确的记录。
修改:fiddle