A-A+

distinct在sql中的应用

2015年09月02日 PHP技术文章 评论 39 条 阅读 263 views 次

在采集的一个站点里面汇集了较多的数据,大概采集了有几十万,同一行业站点的数据几乎都采集了,当然标题是没有改掉的,还是原标题,这是为了方便筛选重复数据的,这几十万的数据里面汇集了较大比重的重复数据,本来想要把这些数据删除掉,但夏日博客苦于没找到好的方法,最后还是想到了 sql 中 distinct 参数,这个参数已经N久没有用过了,其作用就是将重复的数据给过滤掉不显示,看来用在这个采集站点里是最为合适不过了,下面重点的去了解一下 distinct 在 sql 中的应用吧。

distinct作用:

在数据表里,往往会重复许多值,比如输入两个字段的“夏日博客”,如果我们只想要输出一个“夏日博客”的时候,就可以用到 distinct 了,利用 distinct 可以只显示出来一个“夏日博客”。

distinct语法:

因为是需要输出值的,所以需要用到 SELECT,语法如下:

  1. SELECT DISTINCT 列名称 FROM 表名称  

distinct实例一:

为了更直观的看到 distinct 的作用效果,我们来进行一下使用 distinct 之前和之后都是怎样的效果,比如我们有如下 Orders 表:

如果不使用 distinct 来进行读取,则 SQL 为 “SELECT Company FROM Orders” 语句,哪么读取出来的结果就为如下形式:

我们可以看出,重复值 W3School 被两次显示出来了,如果内容是重复的,则只显示一次就可以了,下面再来看一下使用 distinct 之后输出的值是怎样的,先来看一下使用 distinct 之后的 SQL 吧,如下:

  1. SELECT DISTINCT Company FROM Orders  

运行之后的结果形式为:

现在 W3School 只被显示了一次。

distinct实例二:

再浅显的一个小实例,如果我们有如下的 表A:

在 sql 中使用 distinct 来去除重复的数据,运行后的效果如下:

distinct实例三:

还是接着 distinct实例二,我们再稍微将 sql 语句更改一下,不仅去除表 name 里面的重复值,且连 id 的值一同去除掉,SQL语句如下:

  1. select distinct name, id from A  

执行后的效果如下所示:

我们可以看到执行后的效果里面已经将 name 字段和 id 字段里面重复的值都已经去掉了。

标签:

39 条留言  访客:39 条  博主:0 条

  1. 青梅历史网

    采集要用这个吗,不是直接有采集工具来采集麽。

  2. distinct

    sql 中的 distinct 原来起这个作用。

  3. 小众在线弹幕视频站

    采集怕的就是重复的数据。

  4. 唯历史

    distinct貌似对性能影响挺大的

  5. cowrylee

    对于技术性的东东,还是浮云,不懂。

  6. 中国历史

    性能如何?

    • subpro

      神马?

  7. 百度快速排名

    博主这是一定有自己的服务器吧,一天就采集几十万这得占多少空间呀。

    • subpro

      这年头可都是牛人啊。

  8. 海棠秋客

    呵呵,有点小邪恶~

    • 爱眼博客

      什么邪恶,不明觉厉,楼上这都是没看啥文章,一篇普通的技术文章而已,想哪去了。

  9. 蓝沢润

    看到不少站点都转载你这篇文章的。

    • 进口水果

      转载夏日文章的多了,看来夏日写的都是干货呀。

  10. 武汉大学选课系统

    还是大神牛逼。

  11. 纪涛博客

    跟着大神走 大神带我装逼带我飞

  12. harries

    group by 差不多

  13. 抢牛品

    distinct 是什么意思,虽然不是很懂,但看博主写很详细与专业。

  14. 豆浆机知识

    select distinct max(z.id),z.djbm,z.sname from sj_dj z group by z.djbm, z.sname,,在这句里是不是没什么作用,去掉和添加上去没什么区别,,求大神指教。

  15. ultraiso

    很简单的理解,,distinct的只显示一次重复出更的值。 不过这个值出现多少次只显示一次。

  16. 业余抟

    关键词 DISTINCT 用于返回唯一不同的值,在csdn里面看到过这个函数。

    • 进口水果

      用得不是很多,最好在采集的时候能够避免出现重复的数据,

  17. 找牛

    重复的内容坚决不能出现。

  18. 网购网站大全

    博主能一次性采集十几万的数据,说明也是个很牛逼的人物。

    • 进口水果

      我一天最多的时候也就上传一百多篇文章,还是手动上传的,不会技术好可怕呀。

  19. 李霞的博客

    看来是彻讲 distinct 函数的。

  20. 重庆供水设备

    同一行业的数据太多了,莫非把07,08年的数据都给采集了,然并卵,浪费资源。

    • 出国看病

      采集可就不管这些了,反正什么数据都采,这种就是垃圾站,存活率很小。

  21. 鸡蛋美术

    好厉害,一天采集几十万数据,我也是醉了。

  22. 环保之家

    看来是位大神呀 :smile:

  23. 佛山窗帘之家

    看着感觉再看天书。。。

  24. 马赛克君

    好吧!对此表示一窍不通。。。

  25. 九哥

    好吧,对 sql 神马的一窍不通,不过看博主的实例应该是不错的。

  26. 没看明白

    不是太懂,只学过一点点的 SQL,深入的就不懂了。

  27. 大型油烟机清洗

    看来 distinct 的作用不小呢,尤其对于大批量的数据,对于小博客站来说没什么用了。

  28. 肖振杰

    话说 distinct 只是把重复数据给隐藏掉了,但并没有真正在数据库里面删除掉,是这意思吧。

    • 小炎博客

      小炎博客来访,你博客人气还不错啊,看好你

    • 百度快速排名

      仅仅给隐藏掉了,但还是占用数据库的资源,垃圾信息越来越多。

  29. 代账报税

    原来 distinct 是去除重复数据的呀。

  30. 微童年

    想学,但看不懂,还是要基础学起

给我留言