0

在一个表中我有一些列有重复值我想从我的表中检索唯一值我使用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

4 回答 4

2

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

SELECT max(id), po FROM table_name group by po
于 2013-02-07T15:02:59.697 回答
0

不要引用我的话,但你可以做类似的事情:

SELECT GROUP_CONCAT(id) FROM table_name GROUP BY po
于 2013-02-07T15:03:00.607 回答
0

如果你不在乎你会得到哪个 id,那么:

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
于 2013-02-07T15:03:54.720 回答
0

试试这个:

SELECT MIN(id) id, po 
FROM table_name
GROUPB BY po, id
于 2013-02-07T15:05:29.127 回答