我想从我的表中检索唯一值

时间:2013-02-07 14:57:45

标签: php mysql sql

在一个表中,我有一些列有重复值我想从我的表中检索唯一值我使用SELECT DISTINCT column_name FROM table_name查询,我有唯一的列,但我的问题是我也想要任何重复值的ID如何从使用单个查询中检索? 例如

+----+------+------+
| id | name | po   |
+----+------+------+
|  1 | some |    2 |
|  2 | xyzs |    3 |
|  3 | frth |    2 |
|  4 | lopd |    3 |
|  5 | gtry |    2 |
+----+------+------+

我想找到独特的po及其任何一个id

输出

像这样的事情

po - 2 id - ( any of 1,3,5)
po - 3 id - ( any of 2 or 4)

4 个答案:

答案 0 :(得分:2)

只需将它们分组并获得最大ID或最小值。

SELECT max(id), po FROM table_name group by po

答案 1 :(得分:0)

不要引用我这个,但你可能会做类似的事情:

SELECT GROUP_CONCAT(id) FROM table_name GROUP BY po

答案 2 :(得分:0)

如果你不关心你会得到哪个身份证,那么:

SELECT po,id FROM table GROUP BY po

如果您希望获得具有相同po的第一个/最后一个id,您还可以添加MIN(id)/ MAX(id):

SELECT po,MIN(id) as id FROM table GROUP BY po

您还可以所有该po的ID:

SELECT po,GROUP_CONCAT(id) as ids FROM table GROUP BY po

答案 3 :(得分:0)

试试这个:

SELECT MIN(id) id, po 
FROM table_name
GROUPB BY po, id