-
2021-04-07 10:49:04更多相关内容
-
MySQL去重显示指定字段信息
2021-01-19 05:44:40在使用MYSQL的select distinct name from table语句时,输出的只是去重之后name字段的信息,而希望的是能够输出考生ID、考试时间、考试成绩等的信息。使用select distinct name, sorce from table结果发现去重不起...在使用MYSQL的select distinct name from table语句时,输出的只是去重之后name字段的信息,而希望的是能够输出考生ID、考试时间、考试成绩等的信息。使用
select distinct name, sorce from table
结果发现去重不起作用,因为MYSQL认为要sorce和name同时重复才会去除。 最终解决办法如下:
select *, count(distinct name) from table group by name
如果SQL语句还有limit,order by等条件,必须放在group by后面。 这样就达到了既去重,又能够输出更多字段信息的目的.
SELECT语句,去除某个字段的重复信息,例如:
表名:table
id uid username message dateline
1 6 a 111 1284240714(时间戳)
2 6 a 222 1268840565
3 8 b 444 1266724527
4 9 c 555 1266723391
执行语句(去除username字段重复信息并按时间排序):
SELECT *
FROM table a INNER JOIN ( SELECT max( dateline ) AS dateline
FROM table GROUP BY uid ) b ON a.dateline = b.dateline
GROUP BY id ORDER BY a.dateline DESC
结果:
id uid username message dateline
1 6 a 111 1284240714(时间戳)
3 8 b 444 1266724527
4 9 c 555 1266723391
此语句用于显示最新记录信息,在一个区域内不允许某个信息(例如:用户)同时出现多次(一次以上)。
后记:效率问题
开始用了个这语句:
select * from table where dateline IN ( select max(dateline) from table GROUP BY uid ) ORDER BY dateline DESC
IN:当处理数据量比较大的时候,就没效率可言了,所以优化成内联,计算下快了6倍多。。。
继续条效率就加索引了~~
-
mysql 去重查询
2020-11-27 21:48:58<p>id aid bid cid ...我想根据cid去重查询该怎么写sql语句? <p>1 1 2 1 2 1 2 1 3 2 1 1 4 2 1 1 类似于这4条数据可以视为一条,该怎么写sql语句?</p> -
mysql 去重留一
2021-04-21 04:08:24首先先分析一下 我们现在的目的 是 查询到这俩张表的所有数据 然后进行删除重复记录 每条数据只保留一条第一步:查询以下俩张表的重复记录 (关键字段重复>1)ks_examcity 、 ks_examdistrictselect * from ks_...首先先分析一下 我们现在的目的 是 查询到这俩张表的所有数据 然后进行删除重复记录 每条数据只保留一条
第一步:
查询以下俩张表的重复记录 (关键字段重复>1)
ks_examcity 、 ks_examdistrict
select * from ks_examcity group by examSubjectID,city,province having count(examSubjectID)>1;
select * from ks_examdistrict group by examSubjectID,district,city having count(examSubjectID)>1;
第二步:
查询这两张表中 每条记录的第一条记录 (每条记录重复中的第一条 id最小)
select min(id)
from ks_examcity
group by examSubjectID, city, province
having count(examSubjectID)> 1
SELECT min(id)
FROM `ks_examdistrict`
GROUP BY `examSubjectID`, `district`, `city`
HAVING COUNT(`examSubjectID`)> 1
第三步:
联查: 查询所有的重复数据以及重复记录中第一条以外的数据
select `examSubjectID`
from ks_examcity
group by examSubjectID, city, province
having count(examSubjectID)> 1 )
and id not in(
select min(id)
from ks_examcity
group by examSubjectID, city, province
having count(examSubjectID)> 1
SELECT `examSubjectID`
from `ks_examdistrict`
group by `examSubjectID`, `district`, `city`
HAVING COUNT(`examSubjectID`)> 1)
and id not in(
SELECT min(id)
FROM `ks_examdistrict`
GROUP BY `examSubjectID`, `district`, `city`
HAVING COUNT(`examSubjectID`)> 1
第四步: 查询以上查询到的数据的所有id 并以查询到的id作为条件 进行删除
delete from `ks_examcity` where id IN( select id from (
select id
from ks_examcity
where `examSubjectID` in(
select `examSubjectID`
from ks_examcity
group by examSubjectID, city, province
having count(examSubjectID)> 1 )
and id not in(
select min(id)
from ks_examcity
group by examSubjectID, city, province
having count(examSubjectID)> 1)) as tmpresult)
======================================================
DELETE
FROM `ks_examdistrict`
where id IN(
SELECT id
from(
select id
from `ks_examdistrict`
where `examSubjectID` in(
SELECT `examSubjectID`
from `ks_examdistrict`
group by `examSubjectID`, `district`, `city`
HAVING COUNT(`examSubjectID`)> 1)
and id not in(
SELECT min(id)
FROM `ks_examdistrict`
GROUP BY `examSubjectID`, `district`, `city`
HAVING COUNT(`examSubjectID`)> 1)) as tmpresult)
原文:https://blog.51cto.com/13922718/2433185
-
mysql去重多个字段
2021-01-20 14:56:25mysql去重多个字段源表:select distinct id , name, phone from chongfubiao_quchong;select distinct * from chongfubiao_quchong;不合适的命令:distinct(*)命令 #语法错误[Err] 1064 - You have an error in ...mysql去重多个字段
源表:
select distinct id , name, phone from chongfubiao_quchong;
select distinct * from chongfubiao_quchong;
不合适的命令:
distinct(*)命令 #语法错误
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*) from chongfubiao_quchong' at line 1
distinct(id)查出来的是一列
select distinct (id,name,phone) from chongfubiao_quchong;
[Err] 1241 - Operand should contain 1 column(s)
解决过程:
查询多个字段去重
参考命令:select distinct ID,AA,BB from tName
有个疑问:
之前查询无论
distinct (单个字段)还是
distinct 多个字段 好像查询到的数据都是根据多个字段去重的。不知道怎么查询显示了?
将查到的去重数据抽到新表
INSERT into chongfubiao_quchong_copy (id, nam, phone)
select distinct * from chongfubiao_quchong ;
写的错误语句
INSERT into chongfubiao_quchong_copy (id, nam, phone) values
select distinct * from chongfubiao_quchong ;
多了values因为查到的是有id,name,phone还有数据
如果直接插要加values的
INSERT into chongfubiao_quchong_copy (id, nam, phone) values
(5, '3', '4')
总结:
去重语句
#每个字段查询
select distinct 列1名 , 列2名.. from 表名;
#所有查询
select distinct * from 表名;
插入语句
#插入一条数据
INSERT into 插入表 (列1名 , 列2名..) value
(数据1,数据2,..) ;
#插入多条数据
INSERT into 插入表 (列1名 , 列2名..) values
(数据1,数据2,..) ,(数据1,数据2,..);
#插入 查询到的数据
INSERT into 插入表 (列1名 , 列2名..) # 括号中东西不能用*替换
select distinct * from 查询表 ;
在Navicat中复制一个表,并粘贴一个。很快1m 600w数据(3列)(写语句也一样)
下面的是去重了之后插入的先查询在插入
[SQL]INSERT into g....(id,xm,sfzh,jymc,jyjg,jgmc,jysj) SELECT distinct * from g....;
时间: 13.450s
受影响的行: 6796168
679w数据(函id、姓名、身份证号)的查询和插入另一个表 用时13s。。。。
SELECT distinct * from g....;
查询字段出现大于1次的数据
select 字段 from 表 group by 字段 having count(字段 ) >1;
更新时间 不要后面有小数的 。 不加0后面有小数
UPDATE 更新表 SET sj = current_timestamp(0);
-
mysql去重
2021-01-28 01:20:44浏览器显示端去重: mysql去重, 把url重复且区为空的中去掉、统计重复数据、、结果集去重合并成一行 delete from 表名 where id not in (select d.id from (SELECT id FROM 表名 GROUP BY c1,c2,c3,c4)as d) #去重复... -
MySQL_select distinct无法实现只对单列去重,并显示多列结果的解决方法
2021-01-21 13:10:55问题点:存在数据表test_table如下,想只对value字段筛选并去重,结果显示去重后的value列和对应的id列(id显示3或4都可以)idvalue1a2b3c4c5e5f可以看到表中的value字段有重复,如果想筛选去重,使用select distinct... -
mysql去重后获得最新数据方法
2021-02-04 18:58:07昨天做项目时候突然遇到一个问题,...我的需求是要从zan中获得去重后的每篇文章最新的点赞数据。当我动手的时候用了group by gid将gid分组。分组后的gid中取得时间最近的数据。这时sql的写法应该是,select gid,m... -
mysql去重取最大值,逻辑类似oracle的over(partition by)函数
2021-03-14 13:08:42运行结果: 去重取最小值: 如果是去重取最小值,那么代码如下,简单地说就是oracle【改升序为降序】,mysql【改最大值为最小值】。 #oracle select row_number()over(partition by 回款金额 order by 回款金额 ASC... -
一条sql语句完成MySQL去重留一
2021-01-26 04:23:54前几天在做一个需求的时候,需要清理mysql中重复的记录,当时的想法是通过代码遍历写出来,然后觉得太复杂,心里想着应该可以通过一个sql语句来解决问题的。查了资料,请教了大佬之后得出了一个很便利的sql语句,... -
MySQL去重问题:DISTINCT语句
2021-01-13 13:03:521、DISTINCT介绍:在表中,一个列可能会包含多个重复值,有时我们也许希望仅仅列出不同的值,此时可以使用DISTINCT关键词。...2、DISTINCT使用注意事项:distinct 语句中 select 显示的字段只能是 distin... -
mysql 去重 合并每组记录 取每组最新的一条记录
2021-12-20 16:05:39需求 显示每个用户最新的一条数据 点击再展示这个用户所有数据 CREATE TABLE `audit_user_log` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '流水ID', `uid` int(11) NOT NULL DEFAULT '0' COMMENT... -
MySql 去重且指定某字段在前的排序方法
2021-01-19 05:37:06今天遇到一个棘手的数据查找并去重的问题:情况:1.取出数据库中的数据;2.同一字段A,不同情况下取出的其他数据可能相同;3.将2情况下的重复数据删除,且留下指定A值的一条数据;4.将A存在的记录排序到最前,之后... -
(三)MySQL基础查询(起别名、去重)
2020-02-05 20:30:47资料下载请前往:链接 补充内容: 1、数据库基本结构: 2、在sqlyog中将myemployees库导入数据库的方法: ... 执行结束发现并没变化原因是sqlyog10.0版本需手动刷新,点击该...3、mysql中常用命令 #1查看当前... -
mysql去重,根据唯一字段来去重保留任一条
2021-07-05 17:23:27DELETE FROM `gov_departmental_documents` WHERE title IN ( SELECT a.title FROM (SELECT title FROM gov_departmental_documents GROUP BY title HAVING COUNT(title) > 1) AS a) AND id NOT IN (SELECT b.aa ... -
mysql去重, 把url重复且区为空的中去掉、统计重复数据、、结果集去重合并成一行
2021-01-19 04:41:35Select * From 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1) 2、过滤重复记录(只显示一条) Select * From HZT Where ID In (Select Max(ID) From HZT Group By Title) 注:... -
MySQL去重:DISTINCT语句
2020-08-21 22:32:281、DISTINCT介绍: 在表中,一个列可能会包含多个重复值,有时我们也许希望仅仅列出不同...distinct 语句中 select 显示的字段只能是 distinct 指定的字段,其他字段是不可能出现的。如下所示: select distinct na -
MySQL必知必会-5去重,截取和排序
2021-01-19 00:51:42去重使用DISTINCT,DISTINCT告诉MySQL只返回不同(唯一)的列的行。如果使用DISTINCT关键字,它必须放在列的前面。不能部分使用DISTINCT,DISTINCT关键字应用于所有列而不仅是前置它的列,如果给出两个列,除非指定的... -
mysql技巧之数据去重并记录总数
2021-02-05 07:19:351、使用distinct去重(适合查询整张表的总数)有多个学校+教师投稿,需要统计出作者的总数select count(author) as total from files每个作者都投稿很多,这里有重复的记录。select distinct author from files;有... -
MYSQL-SELECT查-wx5c05455f3fc32的博客-51CTO博客
2021-02-02 13:32:02第一条是先对age进行排序后,再对classid进行排序 第二条是先对classid进行排序,然后再对age进行排序 去重 使用DISTINCT关键字进行去重 select distinct age from students; 别名 查询时给字段添加别名,显示的... -
Mysql 语句 去重 ,结果集合并 随时更新
2021-10-14 14:01:35DISTINCT 去重 SELECT DISTINCT label_code FROM label_info SELECT DISTINCT label_code FROM label_info WHERE label_img_code = 2; 原: 去重: GROUP_CONCAT 结果集 拼接 GROUP_CONCAT(label_code,code,xxx)... -
Mysql数组去重,并且获取最新数据
2020-09-04 16:52:41参考文章:mysql——去重并获取最新记录 如下所示: 问:3条数据都是同一个内容,但是要求只是显示最新的一条数据该如何操作呢? 答: SELECT * FROM t_cb_rkdk_lsly a WHERE a.create_time IN ( SELECT m.... -
mysql 去重 计数
2014-03-28 18:10:37要求: 有两个表ttest1、ttest2,结构如下, 求 localname ,用户数 ttest1:地区码、用户id ...缺陷:对于地区d,没有显示用户为0 大家有什么好的方法,欢迎回复 -
MySQL存储去重操作(爬虫)
2021-05-31 22:21:46MySQL数据库安装: 下载地址:https://dev.mysql.com/downloads/windows/installer/5.7.0.html MySQL连接数据库: db = pymysql.connect(host="127.0.0.1",port=3306,user="root",password="root",database="csdn_... -
Mysql 相同字段的多条记录去重只保留日期为最新的一条
2019-11-25 13:49:481、sql SELECT b.*SELECT b.* FROM customer_phone b WHERE b.id = (SELECT MAX(a.id) FROM customer_phone a WHERE a.customerId = b.customerId); FROM customer_phone b WHERE b.create... -
mysql 去重_MYSQL 同样逻辑--四种SQL写法春夏秋冬
2020-11-20 12:41:00提到复杂查询,MYSQL 头疼的旅程就开始了,当然优化的方法和其他的数据监控也不大同,MYSQL的语句优化属于发散性思维,只要你能用上的方法都可以,可不限制于数据库本身的语句优化。所以MYSQL的优化好像是一个讲不...