假设有表:
id name 1 a 2 b 3 c 4 c 5 b
我想用一条语句查询得到name不重复的所有数据,如下:
select distinct name from table ---------- name a b c
好像达到效果了,可是,我想要得到的是id值呢?改一下查询语句吧:
select distinct name, id from table ---------- id name 1 a 2 b 3 c 4 c 5 b
distinct怎么没起作用?作用是起了的,不过他同时作用了两个字段,也就是必须得id与name都相同的才会被排除。我们再改改查询语句:
select id, distinct name from table
很遗憾,除了错误信息你什么也得不到,distinct必须放在开头。
那到底该如何做呢?答案:使用group by语句代替。
mysql> select id,name from test group by name; +----+------+ | id | name | +----+------+ | 1 | a | | 2 | b | | 3 | c | | 5 | d | +----+------+ 4 rows in set
0% (0)
0% (0)