-
2019-03-01 21:54:38更多相关内容
-
MySQL大表中重复字段的高效率查询方法
2020-09-10 23:37:35MySQL大表重复字段应该如何查询到呢?这是很多人都遇到的问题,下面就教您一个MySQL大表重复字段的查询方法,供您参考 -
解析mysql中:单表distinct、多表group by查询去除重复记录
2020-09-10 19:28:36本篇文章是对mysql中的单表distinct、多表group by查询去除重复记录进行了详细的分析介绍,需要的朋友参考下 -
mysql数据库如何去重复数据
2021-02-02 11:44:48mysql数据库去重复数据的方法:方法一:防止表中出现重复数据当表中未添加数据时,可以在MySQL数据表中设置指定的字段为PRIMARY KEY(主键) 或者 UNIQUE(唯一) 索引来保证数据的唯一性。例如在学生信息表中学号no不...mysql数据库去重复数据的方法:
方法一:防止表中出现重复数据
当表中未添加数据时,可以在MySQL数据表中设置指定的字段为PRIMARY KEY(主键) 或者 UNIQUE(唯一) 索引来保证数据的唯一性。
例如在学生信息表中学号no不允许重复,需设置学号no为主键,且默认值不能为NULL。CREATE TABLE student
(
no CHAR(12) NOT NULL,
name CHAR(20),
sex CHAR(10),
PRIMARY KEY (no)
);
方法二:过滤删除重复值
对于数据表中原有的数据,想要去除重复数据需要经过重复数据查找、过滤以及删除等步骤。
1、统计重复数据mysql> SELECT COUNT(*) as repetitions,no
-> FROM student
-> GROUP BY no
-> HAVING repetitions > 1;
以上查询语句将返回student表中重复的记录数。
2、过滤重复数据
如果需要读取不重复的数据可以在SELECT 语句中使用 DISTINCT 关键字来过滤重复数据。mysql> SELECT DISTINCT no
-> FROM student;
也可以使用 GROUP BY 来读取数据表中不重复的数据mysql> SELECT no
-> FROM student
-> GROUP BY (no);
3、删除重复数据
删除数据表中重复数据,可以使用以下SQL语句:mysql> CREATE TABLE tmp SELECT no, name, sex FROM student GROUP BY (no, sex);
mysql> DROP TABLE student;
mysql> ALTER TABLE tmp RENAME TO student;
也可以在数据表中添加INDEX(索引)和 PRIMAY KEY(主键)来删除表中的重复记录,方法如下:mysql> ALTER IGNORE TABLE student
-> ADD PRIMARY KEY (no);更多免费相关学习推荐:mysql数据库
-
MySQL去除查询结果重复值
2019-09-18 02:10:29在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是...
转自: phpv
作者:索尔
内容:作者学习distinct的过程,值得借鉴啊 ^^
--------------------------------------------------------------------------------
在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是distinct只能返回它的目标字段,而无法返回其它字段,这个问题让我困扰了很久,用distinct不能解决的话,我只有用二重循环查询来解决,而这样对于一个数据量非常大的站来说,无疑是会直接影响到效率的。所以我花了很多时间来研究这个问题,网上也查不到解决方案,期间把容容拉来帮忙,结果是我们两人都郁闷了。。。。。。。。。
下面先来看看例子:
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怎么没起作用?作用是起了的,不过他同时作用了两个字段,也就是必须得id与name都相同的才会被排除。。。。。。。
我们再改改查询语句:
select id, distinct name from table
很遗憾,除了错误信息你什么也得不到,distinct必须放在开头。难到不能把distinct放到where条件里?能,照样报错。。。。。。。
很麻烦吧?确实,费尽心思都没能解决这个问题。没办法,继续找人问。
拉住公司里一JAVA程序员,他给我演示了oracle里使用distinct之后,也没找到mysql里的解决方案,最后下班之前他建议我试试group by。
试了半天,也不行,最后在mysql手册里找到一个用法,用group_concat(distinct name)配合group by name实现了我所需要的功能,兴奋,天佑我也,赶快试试。
报错。。。。。。。。。。。。郁闷。。。。。。。连mysql手册也跟我过不去,先给了我希望,然后又把我推向失望,好狠哪。。。。
再仔细一查,group_concat函数是4.1支持,晕,我4.0的。没办法,升级,升完级一试,成功。。。。。。
终于搞定了,不过这样一来,又必须要求客户也升级了。
突然灵机一闪,既然可以使用group_concat函数,那其它函数能行吗?
赶紧用count函数一试,成功,我。。。。。。。想哭啊,费了这么多工夫。。。。。。。。原来就这么简单。。。。。。
现在将完整语句放出:
select *, count(distinct name) from table group by name
结果:
id name count(distinct name)
1 a 1
2 b 1
3 c 1
最后一项是多余的,不用管就行了,目的达到。。。。。
唉,原来mysql这么笨,轻轻一下就把他骗过去了,郁闷也就我吧(对了,还有容容那家伙),现在拿出来希望大家不要被这问题折腾。
哦,对,再顺便说一句,group by 必须放在 order by 和 limit之前,不然会报错,差不多了,发给容容放网站上去,我继续忙碌。。。。。。
-----------------------------------------------------------------------------------------
更郁闷的事情发生了,在准备提交时容容发现,有更简单的解决方法。。。。。。
select id, name from table group by name
看来对mysql的了解还是太肤浅了,不怕被笑话,发出来让大家别犯同样的错误。。。。。。
by 索尔
原文地址 http://www.chinahtml.com/databases/3/2006/mysql-11459225284269.shtml
转载于:https://my.oschina.net/u/2613449/blog/603188
-
mysql 去重复查询 子查询
2019-06-27 11:13:35SELECT e.id, e.on_line, e.name, (SELECT d....data d WHERE d.equipment_id = e.id ORDER BY d.transmission_time DESC LIMIT 1) AS latitude FROM sys_equipment e 事实证明同样的查询结果关联查询要比子查询耗时。SELECT
e.id,
e.on_line,
e.name,
(SELECT d.longitude FROM sys_equipment_data d WHERE d.equipment_id = e.id ORDER BY d.transmission_time DESC LIMIT 1) AS longitude,
(SELECT d.latitude FROM sys_equipment_data d WHERE d.equipment_id = e.id ORDER BY d.transmission_time DESC LIMIT 1) AS latitude
FROM
sys_equipment e事实证明同样的查询结果关联查询要比子查询耗时。
-
MySQL 查询某个字段不重复的所有记录
2020-09-11 09:52:53现在想从这5条记录中查询所有title不重复的记录 -
mysql之重复记录查询及去重
2021-06-08 11:28:36很多是通过代码逻辑(先查询再插入)去保证唯一性,这个在并发很少的情况下是没有问题的,一般用在配置类的数据库表。不过在一些并发高的场景下,就会出现多线程问题,因为先查询再插入并非原子操作,另外当程序出错... -
MySQL 查询重复内容只显示一条
2019-08-14 01:10:12NULL 博文链接:https://onestopweb.iteye.com/blog/2318954 -
MySQL中查询、删除重复记录的方法大全(建议收藏!)
2021-06-07 14:48:07本文主要给大家介绍了关于MySQL中查询、删除重复记录的方法,分享出来供大家参考学习,下面来看看详细的介绍: 查找所有重复标题的记录: select title,count(*) as count from user_table group by title having ... -
mysql数据库DISTINCT 去重复查询
2016-06-10 21:34:19mysql数据库DISTINCT 去重复查询 -
mysql 去重复显示根据ID查询最新的数据
2018-10-26 15:12:52select * from (select *,去重复字段 as code from 表名 order by id desc) t group by code; -
mysql查询重复数据
2021-02-02 13:53:47表全部数据-------------------1 查询people_no重复的记录select * from peoplewhere people_no in (select people_no from people group by people_no having count(people_no) > 1);----------------------2 ... -
MySQL查询重复记录sql语句
2021-02-08 14:45:02在数据开发时我们常常会需要把数据库中重复的记录查出来或直接删除数据库中重复记录,下面我来给大家总结一些方法,有需要的朋友可参考。常用的语句1、查找表中多余的重复记录,重复记录是根据单个字段(mail_id)来... -
mysql 去除重复 Select中DISTINCT关键字的用法(查询两列,只去掉重复的一列)
2021-01-18 18:41:21在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。当查询两列... -
MySQL使用DISTINCT过滤重复数据
2021-01-21 01:40:00为了实现查询不重复的数据,MySQL 提供了 DISTINCT 关键字。DISTINCT关键字的主要作用就是对数据表中一个或多个字段重复的数据进行过滤,只返回其中的一条数据给用户。DISTINCT 关键字的语法格式为:SELECT DISTINC.... -
mysql数据库如何去除重复数据
2021-01-18 23:00:05mysql数据库去除重复数据的方法:1、查询需要删除的记录,会保留一条记录;2、删除重复记录,只保留一条记录,代码为【delete a from test1 a, (...)as bid from test1 c where..】。mysql数据库去除重复数据的方法... -
mysql如何查询重复数据
2022-03-19 11:04:36查询表名为member的表,以id为条件,以name分组查询重复数据 SELECT * FROM member where id='12102' GROUP BY name HAVING count(*) > 1 -
SQL查询语句去除重复行
2021-01-21 03:48:031.存在两条完全相同的纪录 这是最简单的一种情况,用关键字distinct就可以去掉 select ...------------------------------------------ 引自: sql查询语句去除重复列(行)【http://blog.knowsky.com/234240.htm】 -
Mysql数据库中查询重复数据和去重数据 , 删除重复数据的sql及分析
2018-06-17 13:22:15数据库中有重复数据时,用到哪些sql语句? 这里有若干数据,并掺杂了重复数据 1. 查看过滤重复后的数据 思路, group by 分组可以对多个列进行分组, 分组后可以过滤掉重复的数据 sql语句: SELECT id,`name`,... -
MySQLdistinct 去除查询重复值的结果
2017-02-15 17:03:00在使用MySQL时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是... -
mySQL大量数据中去重复查询
2015-09-10 14:36:17在数据查询过程中,可能在数据库中产生大量的重复的数据,如何能高效的找出我们需要的数据呢? 一般情况下想到是的是: DISTINCT 但是你在实际的生产中发现原来他返回的不是一个完整的对象; 之后做了大量的... -
MySQL查询重复数据
2020-05-16 18:27:021、查询表中 uid 重复的数据 SELECT id, uid, name FROM USER WHERE uid IN (SELECT uid FROM USER GROUP BY uid HAVING COUNT(uid) > 1); 2、查询表中重复数据,排除最小id SELECT id, uid, name ... -
MySQL如何去除重复数据?
2021-02-02 03:43:08这篇文章主要介绍了MySQL 去除重复数据实例详解的相关资料,需要的朋友可以参考下MySQL 去除重复数据实例详解有两个意义上的重复记录,一是完全重复的记录,也即所有字段均都重复,二是部分字段重复的记录。... -
mysql 查询重复字段 内容
2021-02-02 13:53:33$sql="SELECT a.id,a.title FROM dede_archives a left join dede_taglist t on t.tag=a.title WHERE t.typeid=$id and t.arcrank... 数据库中有个大表,需要查找其中的名字有重复的记录id,以便比较。 如果仅仅是查... -
mysql查询重复数据并保留一条
2021-03-03 21:15:23day_loandetil,有以下字段主键ID、借贷IDLOAN_TURN_ID、账单日BILL_TIME、正常利息INTEREST、逾期利息OVERDUE_BALANCE字段表中存在同一天、同一笔借贷、两条数据,现在要把重复的数据查询出来并把正常利息+逾期利息... -
MySQL去重查询
2018-10-30 09:55:25在使用MySQL时,有时需要查询出某个字段不重复的记录,这时可以使用mysql提供的distinct这个关键字来过滤重复的记录, 实例: select distinct name,id from user;,这样的结果为: distinct name,id 这样... -
mysql去除重复数据
2019-08-19 17:54:21mysql去除重复数据 在crm中,电话号码就往往就代表了一个客户,所以往往电话号码不能出现重复数据,下面就根据客户表client的phone字段去除重复数据: 查询重复数据: select phone,count(phone) as c from client ... -
Mysql| distinct去除重复的结果(DISTINCT)
2017-11-12 17:10:37select语句查询出来的结果它们可能是很多条数据是...DISTINCT 的去重复是保证了一行记录中所查询出来的结果中一行数据中所有的列不同时相等.但是允许其中的某些列存在相同的值. DISTINCT 关键字是应用于所有列而不是 -
在 MySQL 中查询不重复记录值的方法
2021-01-31 02:57:15使用 WordPress 的过程中,我一直很好奇 WordPress 的一个功能,大家都知道在 ...meta_key,那么在 WordPress 的自定义栏目那里就会看到这个新的字段,可是这个表里面有那么多的数据,他是如何查询得到的数据。...