![](/img/trans.png)
[英]Sql query to Compare same fields of different rows in the same table in mysql
[英]Can I compare different rows in the same MySQL table (SQL)
有沒有一種方法可以比較同一MySQL表中的不同行? 我想計算有多少用戶更改了姓名。
這大致是我在MySQL日志表中得到的...
id userid name
1 1 Joe
2 1 Joe
3 1 Joe
4 2 Fiona
5 3 Mark
6 3 Marcel
7 3 Marcel
8 4 Mary
9 4 Marie
您可以看到,即使Joe在日志表中3次,他的名字也沒有改變。 “標記”更改為“馬塞爾”,“瑪麗”更改為“瑪麗”。 因此,如果這是整個表格,我想知道有兩個人更改了姓名(四個)。
SELECT userid, GROUP_CONCAT(name) FROM tablename GROUP BY userid ORDER BY userid DESC
我可以使用腳本語言(PHP)檢查輸出,我只是想知道我在SQL中是否可以做些更整潔的事情,只給我改過的名字。
我不確定這是否可行。 尚未找到解決方案,如果重復,請告訴我。 謝謝。
如何使用HAVING
子句?
SELECT userid
FROM tablename
GROUP BY userid
HAVING MIN(name) <> MAX(name)
ORDER BY userid DESC;
如果您希望名稱不重復:
SELECT userid, GROUP_CONCAT(DISTINCT name)
FROM tablename
GROUP BY userid
HAVING MIN(name) <> MAX(name)
ORDER BY userid DESC;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.