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中文網其他相關文章!