如何仅从一列中选择不同的值

时间:2012-12-12 20:40:13

标签: mysql

我的记录如下:

key  | name
--------------
1111 | aa   
1111 | bb    
2222 | cc

key值不同时,我需要选择namekey。我试过的时候:

select distinct key, name from table;

我获得了所有行,因为查询对于列的组合采用了不同的行:keyname。但是,我需要的只是不同的key而我并不关心name。我有很多记录,所以我需要一种实用的方法。

5 个答案:

答案 0 :(得分:11)

查询:

SELECT `key`, MAX(`name`) as name
FROM `table`
GROUP BY `key`

答案 1 :(得分:2)

为什么不呢:

SELECT distinct key
FROM table

SELECT key, name
FROM table
GROUP BY key

答案 2 :(得分:0)

SELECT key, name FROM table GROUP BY key;

这为key的每个不同值返回一行,name的值可从该组中的行中任意选择。在实践中,MySQL倾向于从组中首先物理存储的行返回name的值,但这不能保证。

正如其他答案所示,您可以将名称放入聚合表达式。

答案 3 :(得分:0)

如果您不关心不是分组字段,请尝试此查询 -

select key, name from table group by key order by name

MySQL允许在不使用聚合函数的情况下选择字段。

按名称排序有助于从组中选择名字。

答案 4 :(得分:0)

这个怎么样:

select * from table group by key having count(key) = 1