我需要从表列表中删除重复的记录。我的困惑是,当我触发查询时
SELECT * FROM `table` GROUP BY CONCAT(`name`,department)
然后给我正确的列表(12 条记录)。
当我使用子查询时相同的查询:
SELECT *
FROM `table` WHERE id IN (SELECT id FROM `table` GROUP BY CONCAT(`name`,department))
它返回所有错误的记录。
所以,我的问题是为什么子查询中的 group by
不起作用。
最佳答案
实际上,正如 Tim 在他的回答中提到的那样,通过 group by 子句获取第一条唯一记录并不是 sql 的标准功能,但 mysql 在 mysql5.6.16 版本之前允许它,但从 5.6.21 开始它已被更改。
只需在你的 sql fiddle 中更改 mysql 版本,然后检查你会得到你想要的。
关于mysql - 使用 Group By 从 Mysql 表中删除重复记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32175332/