广告
返回顶部
首页 > 资讯 > 数据库 >mysql如何去除重复项
  • 684
分享到

mysql如何去除重复项

2024-04-02 19:04:59 684人浏览 泡泡鱼
摘要

这篇文章给大家分享的是有关Mysql如何去除重复项的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体如下:说到这个去重,脑仁不禁得一疼,尤其是出具量比较大的时候。毕竟咱不是专业的

这篇文章给大家分享的是有关Mysql如何去除重复项的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

具体如下:

说到这个去重,脑仁不禁得一疼,尤其是出具量比较大的时候。毕竟咱不是专业的DB,所以嘞,只能自己弄一下适合自己去重方法了。

首先按照常规首段,使用having函数检查重复项,完事一个一个的删除。不要问我having检测重复项的sql咋写,你懂得哈。。。这个在只有几条重复的时候还可以。要是几千上万条不同数据重复,那咋办。。。

完事呢,咱就考虑了,用having函数查询的时候,原始sql如下:

select `name`,count(*) as count from sentence group by `name` having count>1

大家可以运行感觉下,在五百万左右的数据时,那速度,麻油。。。

但是嘞,咱在不考虑优化它的运行速度的前提下,来考虑使用这个语句来使我们去除数组中的重复项。首先,我们要知道,我们删除重复数据的时候需要使用的数据有哪些。id是肯定的,再来呢,筛选的条件是吧。所以嘞,上面的sql查询出来的数据,缺少了啥,id。。。那我们加上这个字段查询下试试哈:

select id,`name`,count(*) as count from sentence group by `name` having count>1

结果呢,就会显示出来id,name,count这三个字段。具体效果大家可以自己运行看下。根据这些数据咱们就可以进行去除重复项的操作了。

具体的sql设计就是删除id不是咱们查询出来的id,但是name值是咱们查询出来的值,因为咱们的数据不是一条,所以得经过程序处理,把所有的id用逗号拼接起来,name值用引号和逗号处理下,完事就可以进行使用了,示例呢就在下方:

delete from sentence where id not in(1,2,3) and name in('a','b','c')

如果数据过多的话,咱们可以写成脚本,完事再进行分批次操作。嘿嘿,到了这里,咱们就可以进行去除重复项的操作了,但是这个速度么,始终是个困扰。接下来咱们就要考虑如何来优化这个sql,让它的速度上去,就算是大功告成了。

既然是提升咱们sql的运行速度,按照常理来讲,首先应该想到的那就是索引。好呗,废话不多说,咱们先建立索引。但是给那个字段建立所以呢???这又是个问题了。

这个原则上是在你name字段可以加以区分的字段上建立的。比如,我的name字段里面储存的是一条条的品牌名称,然后呢,我有一个industry字段是来存储每个品牌的行业的,所以我就在我的industry字段上建立了索引。当然,还有更加合适的,这个就看大家咋考虑了。废话不多说,咱直接来看看我们优化后的sql:

select id,`name`,count(*) as count from sentence where industry = '饮品' group by `name` having count>1

运行结果如下:

mysql如何去除重复项

结果说明啥,说明咱们的索引有在使用哦。。。那速度,咱不说各位看官应该也了解。完事咱们就可以再用程序把所有的id用逗号拼接起来,name值用引号和逗号处理下,完事就可以进行那个去除重复项的大业了。效率明显上升啊。。。

不过有的看官可能用的条件里面含有like等会使索引失效的条件,那咱们还可以,把数据简单分类,完事分别检测每个分类的数据,全部查询出来后,可以使用程序来检查重复项,并且取出删除所需要的数据。

附:mysql rand查询优化&随机查询优化

说起这个随机查询,大家都知道使用rand()函数,但是当数据量达到一定程度的时候,查询效率就可想而知了。所以呢?我们不妨考虑下优化这个查询方案。

我的优化方式为,通过程序来随机,再配合limit来取值。咱们记录下大概思路哈。

首先查询出符合条件的数据条数,之后用PHP的rand函数来在这个数值范围内随机取值,之后直接查询就可以。

示例sql:

select count(*) from test where $where; (计算所需要的数据的总条数)

$offset = rand(0,$count)

select * from test where $where limit $offset,1;   (查询出所需数据)

大家可以动手试试。五百万左右的数据情况下,查询速度较之mysql的rand函数查询方式快了最少十倍。

感谢各位的阅读!关于“mysql如何去除重复项”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

您可能感兴趣的文档:

--结束END--

本文标题: mysql如何去除重复项

本文链接: https://www.lsjlt.com/news/55808.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql如何去除重复项
    这篇文章给大家分享的是有关mysql如何去除重复项的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体如下:说到这个去重,脑仁不禁得一疼,尤其是出具量比较大的时候。毕竟咱不是专业的...
    99+
    2022-10-18
  • php中一维数组如何去除重复项
    这篇文章主要介绍php中一维数组如何去除重复项,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php一维数组去除重复值的方法:首先创建一个PHP示例文件;然后定义一个一维数组;最后通过“array_unique($ar...
    99+
    2023-06-08
  • php如何去除重复值
    这篇文章主要讲解了“php如何去除重复值”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php如何去除重复值”吧!php去除重复值的方法:1、使用“function more_array_un...
    99+
    2023-07-04
  • thinkphp如何去除重复值
    本篇内容介绍了“thinkphp如何去除重复值”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!thinkphp去除重复值的方法:1、打开相应的...
    99+
    2023-06-26
  • 怎么使用python list去除重复项
    今天小编给大家分享一下怎么使用python list去除重复项的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们...
    99+
    2022-10-19
  • mysql中使用distinct如何去除重复记录
    下面一起来了解下mysql中使用distinct如何去除重复记录,相信大家看完肯定会受益匪浅,文字在精不在多,希望mysql中使用distinct如何去除重复记录这篇短内容是你想要的。重复的记录是指dist...
    99+
    2022-10-18
  • mysql去除重复查询的方法
    小编给大家分享一下mysql去除重复查询的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!mysql去除重复查询的方法:1、使...
    99+
    2022-10-18
  • ES6中怎么去除Array对象重复项
    这篇文章将为大家详细讲解有关ES6中怎么去除Array对象重复项,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。输入例子[false, true,&...
    99+
    2022-10-19
  • thinkphp5如何去除重复查询
    这篇文章主要讲解了“thinkphp5如何去除重复查询”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“thinkphp5如何去除重复查询”吧!一、使用 SELECT DISTINCT ...
    99+
    2023-07-05
  • python 去除重复行
    from pandas import read_csv; df = read_csv('D://PA//4.3//data.csv') newDF = df.drop_duplicates(); ...
    99+
    2023-01-31
    python
  • 怎么在mysql中去除重复数据
    在mysql中去除重复数据的方法:1.启动mysql;2.登录mysql数据库;3.进入数据表;4.使用COUNT函数统计重复数据;5.执行命令删除重复数据;具体步骤如下:首先,在命令行中启动mysql服务;service mys...
    99+
    2022-10-24
  • php如何删除重复项
    这篇文章将为大家详细讲解有关php如何删除重复项,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。删除重复项您有一个包含重复项的大型数组,并且希望删除它们,使其仅具有唯一值的...
    99+
    2022-10-19
  • php如何去除重复数组值
    这篇文章主要介绍php如何去除重复数组值,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php去除重复数组值的方法:首先打开相应的PHP代码文件;然后通过“array_unique($ordernum);”去掉重复的字...
    99+
    2023-06-14
  • python如何去掉字典重复项
    在Python中,可以通过使用集合(set)来去除字典中的重复项。以下是一个示例代码,演示如何去除字典中的重复项:```python...
    99+
    2023-10-11
    python
  • Oracle去除重复数据
    查询某些字段相同的记录 如:查询col1与col2值相同的记录: select a.* from table1 a, table1 b where a.id &l...
    99+
    2022-11-13
  • python的list去除重复
    我直接上脚本:方法1:#!/usr/bin/env python n = [1,2,3,3,4,3,1,2,3,2,1,4,5,5,5,5,6,6,4,3,2,1,2,6,8,2] m = [] for x in n:     if x ...
    99+
    2023-01-31
    python list
  • access查询去除重复项的方法是什么
    在Access中,可以使用DISTINCT关键字或GROUP BY子句来去除重复项。1. 使用DISTINCT关键字:在SELEC&...
    99+
    2023-10-11
    access
  • mysql如何实现合并结果集并去除重复值
    本篇内容介绍了“mysql如何实现合并结果集并去除重复值”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!mysql 合并结果集并去除重复值SE...
    99+
    2023-07-04
  • php两个数组如何去除重复
    这篇文章给大家分享的是有关php两个数组如何去除重复的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。php两个数组去除重复值的方法:首先创建一个PHP示例文件;然后通过“rray_diff($f,$e);array...
    99+
    2023-06-14
  • php数组如何去除重复元素
    本篇内容主要讲解“php数组如何去除重复元素”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php数组如何去除重复元素”吧!方法一:使用array_unique()函数PHP内置的array_un...
    99+
    2023-07-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作