Chinaunix首页 | 论坛 | 博客
  • 博客访问: 26213181
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类: Mysql/postgreSQL

2010-03-24 09:11:52

Mysql中的distinct使用整理

[整理人:遥方  整理时间:2010-3-24]

测试的表语句:

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后面跟的字段表示 作为一个整体来考虑是否重复如果有重复则踢除掉!

 

 

阅读(468) | 评论(0) | 转发(0) |
0

上一篇:Query Cache

下一篇:Java中的单例模式

给主人留下些什么吧!~~