全部博文(2065)
分类: Mysql/postgreSQL
2010-03-24 09:11:52
Mysql中的distinct使用整理
[整理人:遥方 整理时间:
测试的表语句:
CREATE TABLE `a` (
`a`
char(50) default NULL,
`b`
char(50) default NULL,
`c`
char(50) default NULL
)
现在我插入以下几条语句:
mysql> insert into a
values('a','b','c'),('a','b','c'),('a','b','d'),('a','d','c'),('a','e','f'),('a','b','e');
现在来查询:
mysql> select * from a;
+------+------+------+
| a
| b | c |
+------+------+------+
| a
| b | c |
| a
| b | c |
| a
| b | d |
| a
| d | c |
| a
| e | f |
| a
| b | e |
+------+------+------+
来看:
select distinct a from a; 返回 a
PS:这种情况是以列a为单位进行去掉重复列字段的
mysql> select distinct a,b from a;
+------+------+
| a
| b |
+------+------+
| a
| b |
| a
| d |
| a
| e |
+------+------+
PS:这种写法即distinct后面如果有两个列的话就表示 :这两个列同时不重复的
A b
A d
A e
就这三条 两个同时不重复的了!
mysql> select distinct a,b,c from a;
+------+------+------+
| a
| b | c |
+------+------+------+
| a
| b | c |
| a
| b | d |
| a
| d | c |
| a
| e | f |
| a
| b | e |
+------+------+------+
三个同时不重复的有五条记录。
结论:distinct后面跟的字段表示 作为一个整体来考虑是否重复如果有重复则踢除掉!