很多时候数据库查出来的数据会出现重复的情况。
不过这些情况用distinct就可以解决。
表A:
id | name |
---|---|
1 | a |
2 | b |
3 | c |
4 | b |
1 | a |
表B:
province | city |
---|---|
河北省 | 石家庄市 |
河北 | 省石家庄市 |
1.对于单列的去重
select distinct name from A
执行之后的结果:
name |
---|
a |
b |
c |
2.对于多列的去重
实例1:
select distinct id,name from A
执行之后的结果如下:
id | name |
---|---|
1 | a |
2 | b |
3 | c |
4 | b |
实例2:
select distinct province,city from B
执行之后的结果:
province | city |
---|---|
河北省 | 石家庄市 |
河北 | 省石家庄市 |
由此可见,distinct去重是根据每一列进行去重,作用于province 和 city 两个字段,不是province 和 city 两列“字符串拼接”后再去重的。
distinct规范
distinct必须写在字段前面。
select id,name distinct from A
这样写就会报错。