![](/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.