×
您的位置: 首页 > 编程笔记

mysql实现distinct限制一列而查多列的方法

MySQL distinct SQL 时间:2019-08-02  查看:822   收藏

假设有表:


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)