我有下表:
match_id player_1 player_2
1 AAA BBB
2 CCC DDD
3 CCC AAA
我想知道玩家 AAA 和 BBB 之间比赛的 match_id,但我不知道他们的确切顺序(AAA vs BBB 或 BBB vs AAA)。
现在我使用类似 WHERE (('player_1' = AAA AND 'player_2' = BBB) OR ('player_1' = BBB AND 'player_2' = AAA))
的构造,但它可以不使用 key ,所以我怀疑它是最有效的。
它在小表(1k+ 条目)上运行良好,但现在我正在开发另一个项目,该表中可能有 100k+ 行,所以我有点担心。
请给我建议让 match_id 了解两名玩家的最佳方法。
最佳答案
尝试查询
select match_id from table_name where "AAA" in (player_1,player_2) and
"BBB" in (player_1,player_2);
并且不要忘记创建player_1和player_2字段的索引。这将有助于提高性能
关于Mysql选择条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14089890/