[英]MYSQL select table rows where column contains same data in more than one record in my code
[英]Select rows where column contains same data in more than one record
有很多類似標題的問題,但我找不到一個不涉及分組的答案(GROUP BY x HAVING COUNT(*)> 1),但我正在尋找的是一個查詢返回所有未分組的行(在MySQL中)。
說我有以下內容:
id data
1 x
2 y
3 y
4 z
我希望查詢返回的是:
2 y
3 y
基於第2行和第3行在數據列中具有相同值的事實。
SELECT * FROM表WHERE [數據包含一些其他行中也存在的值]
你必須把它放在一個子查詢中
select * from table where data in (
select data from table group by data having count(*) > 1
)
SELECT DISTINCT x.*
FROM table1 x
JOIN table1 y
ON y.id <> x.id -- ids are NOT equal
AND y.data = x.data; -- but data IS
http://sqlfiddle.com/#!2/f8910
這個查詢和上面的fP可能在性能方面大致相當 - 但是用這種方式重寫fP並觀察它......
SELECT DISTINCT x.id
FROM table1 x
JOIN
( SELECT data FROM table1 GROUP BY data HAVING COUNT(0) > 1 ) y
ON y.data = x.data;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.