如何“分组”或“选择”清理重复?

时间:2012-02-25 03:11:38

标签: php mysql sql group-by

查看以下数据:

who code  info
1   1467  1
1   1468  2 
1   1469  3 
3   1467  5 
3   1468  4
3   1469  7

我需要做的是选择不重复的代码:WHO = 1,如何忽略WHO = 3但不说:WHERE who!= 3,因为我需要做类似的事情:

GROUP BY code

其实我得到这样的结果:

1   1468  2 
3   1467  5 
3   1469  7

我想要的是:

1   1467  1
1   1468  2 
1   1469  3

1 个答案:

答案 0 :(得分:0)

只需将who添加到群组中,然后使用WHERE过滤掉ID 3。

SELECT who, code, info FROM data WHERE who != 3 GROUP BY who, code

请注意,如果您从此查询中选择info之类的内容而不对其进行分组,MySQL将为您提供该组中任何一行的值(不保证哪一行 - 这只是如果您使用MySQL;大多数数据库引擎甚至不会让您构建这样的查询!)。所以你可能想要的就是三个:

SELECT who, code, info FROM data WHERE who != 3 GROUP BY who, code, info