Mysql选择条件

标签 mysql sql select union

我有下表:

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/

相关文章:

php - 如何从mysql表中获取空白或空值或0的列数

sql - 如何使用 SQL 获取每天的事件计数?

mysql - #1320 - 在 FUNCTION MYSQL 中找不到 RETURN

c# - 谁能告诉我这是什么意思 WriteLine ("{0,-12}")

mysql - 如何在每第n行选择混合结果?

sql - 使用 A999 > A1000 解决下一个最大问题

mysql - 查找给定工作日的最大出现次数

mysql - 如何在sql语句中执行逻辑

php - 使用 php 从具有多个参数(来自不同列)的 mysql 表中查找行

mysql - 将重复的行转置为mysql中的列