MySQL多行相同值查找:完整指南
在MySQL等关系型数据库中,识别具有匹配列值的行列通常是一项关键任务。本文探讨如何返回在特定列中共享相同值的列。
考虑以下数据表:
ID | Score |
---|---|
1 | 95 |
2 | 100 |
3 | 88 |
4 | 100 |
5 | 73 |
要检索同时出现在ID 2和ID 4中的所有分数,一种方法是使用聚合和HAVING子句:
<code class="language-sql">SELECT Score FROM t GROUP BY Score HAVING COUNT(CASE WHEN ID = 2 THEN 1 END) > 0 AND COUNT(CASE WHEN ID = 4 THEN 1 END) > 0;</code>
此查询计算每个不同分数的ID 2和ID 4行的计数。然后,将ID 2和ID 4的计数都大于零的分数作为所需结果返回。
说明:
GROUP BY Score
按Score列聚合行。HAVING COUNT(CASE WHEN ID = 2 THEN 1 END) > 0
确保只包含存在ID 2的分数。HAVING COUNT(CASE WHEN ID = 4 THEN 1 END) > 0
进一步过滤结果,以包含也存在ID 4的分数。通过在HAVING子句中组合这些条件,查询有效地识别同时出现在ID 2和ID 4中的分数。此技术可以扩展到任意数量的ID或列,为在MySQL中查找匹配值提供通用的解决方案。
以上是如何在 MySQL 中查找多行中的相同值?的详细内容。更多信息请关注PHP中文网其他相关文章!