mysql 查找除id外其他重复的字段数据

如表 test1 有多个重复的字段

其中有些数据完全重复是错误的数据,我们要把他找出来,然后删除掉

select * from test1 a where (a.phone,a.name) in (

select phone,name from test1 group by phone,name having count(*)>1

) and id not in (

select max(id) from test1 group by phone,name having count(*)>1

);

结果

然后就可以用php或其他语言来删除这些 id 了

或者

把前面的那个select换成

delete

delete from test1 where (a.phone,a.namein (

select phone,name from test1 group by phone,name having count(*)>1

) and id not in (

select max(id) from test1 group by phone,name having count(*)>1

);
时间: 2024-08-26 06:03:17

mysql 查找除id外其他重复的字段数据的相关文章

MySQL批量插入不重复uuid字段数据

不想动脑子就记录下来了 灵感来源于https://blog.csdn.net/xiaotangaimama/article/details/79794186 这位大兄弟: 第一步:先把需要数据查询 (生成的临时表是否会有重复uuid数据) SELECT UUID(),id,G1,G3,Title,G6,G7,G8,G9,G10,G11,G12  FROM table1 第二步:将数据累计插入表中 INSERT INTO table1_copy(id,G1,G3,Title,G6,G7,G8,G9

MySQL 如何删除有外键约束的表数据

-- 禁用外键约束 SET FOREIGN_KEY_CHECKS=0; -- 删除数据 truncate table stockTBL; -- 启动外键约束 SET FOREIGN_KEY_CHECKS=1; -- 查看当前FOREIGN_KEY_CHECKS的值,可用如下命令: SELECT @@FOREIGN_KEY_CHECKS;

MYSQL查找从小到大排列第90%个位置的数据

方法一(存储过程实现): beginDECLARE cnt INT DEFAULT 0;select count(*) into cnt from user;set cnt = round(cnt*0.9)-1;select * from user limit cnt, 1; end 方法二(直接查询,,只有查询权限的时候可以考虑): 这种方法也是解决mysql limit后面不支持变量的问题 SELECT COUNT(*) INTO @cnt FROM cmb_loading_count_20

Sql Server 存储过程删除一个表里(除ID外)完全重复的数据记录

1 CREATE PROCEDURE P_DeleteSameData 2 ( 3 @table nvarchar(50),--表名 4 @columns nvarchar(200)--列名,格式形如:Id,Name,Age 5 ) 6 AS 7 BEGIN 8 BEGIN TRY 9 BEGIN TRANSACTION 10 DECLARE @SQL NVARCHAR(1000),@tempTable NVARCHAR(20); 11 SET @SQL = ''; 12 IF OBJECT_I

如何在mysql查找效率慢的SQL语句

如何在mysql查找效率慢的SQL语句呢?这可能是困然很多人的一个问题,MySQL通过慢查询日志定位那些执行效率较低的SQL 语句,用--log-slow-queries[=file_name]选项启动时,mysqld 会写一个包含所有执行时间超过long_query_time 秒的SQL语句的日志文件,通过查看这个日志文件定位效率较低的SQL .下面介绍MySQL中如何查询慢的SQL语句 一.MySQL数据库有几个配置选项可以帮助我们及时捕获低效SQL语句 1,slow_query_log 这

[MySQL日记]主键唯一键重复插入解决方法

我们插入数据的时候,有可能碰到重复数据插入的问题,但是这些数据又是不被允许有重复值: CREATE TABLE stuInfo ( id INT NOT NULL COMMENT '序号', name VARCHAR(20) NOT NULL DEFAULT '' COMMENT '姓名', age INT NOT NULL DEFAULT 0 COMMENT '年龄', PRIMARY KEY (id), UNIQUE KEY uniq_name(name) ) ENGINE=InnoDB D

[django/mysql] 使用distinct在mysql中查询多条不重复记录值的解决办法

前言:不废话.,直接进入正文 正文: 如何使用distinct在mysql中查询多条不重复记录值? 首先,我们必须知道在django中模型执行查询有两种方法: 第一种,使用django给出的api,例如filter value distinct order_by等模型查询api; 代码:LOrder.objects.values('finish_time').distinct() 这里应注意,原官方文档中写到: 示例(第一个之后的示例都只能在PostgreSQL 上工作): >>> Au

mysql为表添加外键完成性约束 报错Can't create table 'sfkbbs.#sql-513_25' (errno: 150)

代码 alter table sfk_son_module add constraint foreign key(father_module_id) references sfk_father_module(id) on delete restrict on update restrict; (constraint 后面可以加上约束名字) 错误原因是之前两张表的id的类型不一样,一个时int,一个时bigint 解决办法时修改表, alter table sfk_father_module mo

MySQL自增ID 起始值 修改方法

在mysql中很多朋友都认为字段为AUTO_INCREMENT类型自增ID值是无法修改,其实这样理解是错误的,下面介绍mysql自增ID的起始值修改与设置方法. 通常的设置自增字段的方法: 创建表格时添加: create table table1(id int auto_increment primary key,...) 创建表格后添加: alter table table1 add id int auto_increment primary key 自增字段 一定要设置为primary ke