注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

秦时明月

做好今天的事!

 
 
 

日志

 
 
 
 

mysql 去除重复记录  

2014-03-26 10:56:14|  分类: mysql |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

举个简单的例子: 

     table 
   id name 
   1 a 
   2 b 
   3 c 
   4 c 
   5 b 

比如我们想用一条语句查询得到name不重复的所有数据,那就必须使用distinct去掉多余的重复记录。 

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怎么没起作用?作用是起了的,不过distinct同时作用了两个字段,也就是必须得id与name都相同的才会被排。。。。。。。 

我们再改改查询语句: 

select id, distinct name from table 

很遗憾,除了错误信息你什么也得不到,distinct必须放在开头。难到不能把distinct放到where条件里?能,照样报错。。。。。。。

解决方案有两种 (经过验证的):

1、用group_concat()方法

select id,name,group_concat(id) from table group by name

2、用count加distinct方法

select id.name,count(distinct(name)) from table group by name

通过验证,是第二个方案效率较快

大家如果有好的建议或意见,欢迎留言沟通,学习


来源:http://blog.zol.com.cn/2344/article_2343927.html

  评论这张
 
阅读(15)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017