在MySQL行中识别匹配的列值
MySQL 提供了一种多功能机制来从表中检索数据,包括根据公共列值隔离行。本文探讨如何返回在特定列中具有相同值的那些行。
问题陈述:
考虑下表:
ID | Score |
---|---|
1 | 95 |
2 | 100 |
3 | 88 |
4 | 100 |
5 | 73 |
任务是仅检索与 ID 2 和 4 对应的分数,在本例中为 100。
解决方案:
MySQL 提供了几种方法来完成此任务。最合适的方法取决于具体要求。
使用HAVING子句进行聚合:
对于这种情况,聚合和 HAVING 子句的组合提供了一种优雅的解决方案:
SELECT score FROM t GROUP BY score HAVING SUM(id = 2) > 0 AND -- 包含id = 2 SUM(id = 4) > 0 -- 包含id = 4
此查询按分数对行进行分组,计算每个分数中 ID 2 和 ID 4 的出现次数。HAVING 子句确保只返回在 ID 2 和 ID 4 中都存在的分数。
以上是如何在 MySQL 中查找多行中的匹配列值?的详细内容。更多信息请关注PHP中文网其他相关文章!