簡體   English   中英

我可以比較同一個MySQL表(SQL)中的不同行嗎

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM