mysql删除表中某一字段重复的记录_Mysql

比如,表:event(id int(10) auto_increment primary key,
                sid int(10)not null,
                detail text)

我想删除表event中sid重复的记录,请问有没有这样SQL语句?或是通过其它方法?

复制代码 代码如下:

delete from event as e 
where id != (select min(id) from event where sid=e.sid); 

or 

复制代码 代码如下:

delete from event 
where sid not in (select mid from (select sid ,min(id) as mid from event group by sid)) 

应该是有用的代码

复制代码 代码如下:

alter ignore table event add unique index idu_sid (sid);
alter table event drop index idu_sid;

时间: 2024-09-20 23:27:44

mysql删除表中某一字段重复的记录_Mysql的相关文章

2005-如何在SQL数据表中如何剔除连续重复的记录,统计个数时只记做1条记录?

问题描述 如何在SQL数据表中如何剔除连续重复的记录,统计个数时只记做1条记录? 各位大虾帮帮忙:如何剔除数据表中连续重复的记录记做1条记录?? 数据表如下,我想要取result=0的sn在各prodorderid下的个数( 注意:要剔除连续重复的数据,记做1条记录,但是不连续的重复的分别记为1条记录 ) create table test ( id int identity(1,1) primary key, sn varchar(50) not null, prodorderid int n

查询一张表中两个字段重复的数据并得到其主键?

问题描述 希望各位路过的大侠 帮小弟一把.感激不尽. 如何查询一张表中两个字段都重复的数据以及每组中的第一条数据的主键? 情况如下: A表: a1 a2 a3  a4   都列a1     a2            a3                  a41       m              n                   o2       m              n                   k3       j                k     

MySQL命令行删除表中的一个字段_Mysql

先看看删除之前的表结构: mysql> select * from test; +------+--------+----------------------------------+------------+------------+------------+------------+ | t_id | t_name | t_password                       | t_birth    | birth      | birth1     | birth2     |

MYSQL删除表中的指定ID数据_Mysql

删除A表中的ID 中的开头以B* 的数据库. 复制代码 代码如下: delete FROM A WHERE id like 'B%' 单独删除 A 表中的ID B 复制代码 代码如下: delete FROM A WHERE id = 'B'

获取MySQL的表中每个userid最后一条记录的方法_Mysql

如下表: CREATE TABLE `t1` ( `userid` int(11) DEFAULT NULL, `atime` datetime DEFAULT NULL, KEY `idx_userid` (`userid`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8: CREATE TABLE `t1` ( `userid` int(11) DEFAULT NULL, `atime` datetime DEFAULT NULL, KEY `idx_userid

MySQL 删除表中重复记录

版本是:5.0.22-community-nt. 1. 为表folder新建一个临时表folder_tmp create table folder_tmp as select * from folder group by serverIp, userId, name, path; 这里根据serverIp, userId, name, path分组之后,表folder_tmp中留下的是主键id靠前的数据 2. 删除原来的表 drop table folder 3. 重命名表 alter tabl

MySQL 删除数据库中重复数据方法小结_Mysql

刚开始,根据我的想法,这个很简单嘛,上sql语句 delete from zqzrdp where tel in (select min(dpxx_id) from zqzrdp group by tel having count(tel)>1); 执行,报错!!~!~ 异常意为:你不能指定目标表的更新在FROM子句.傻了,MySQL 这样写,不行,让人郁闷. 难倒只能分步操作,蛋疼 以下是网友写的,同样是坑爹的代码,我机器上运行不了. 1. 查询需要删除的记录,会保留一条记录. select

怎样删除表中的重复数据,谢谢大家

问题描述 怎样删除表中的重复数据,谢谢大家 表内容如下: id fwbm kjbh sfxm dj yl ....................... 52578 d01142 d011422015928 001 .400 0 54.70 54.70 0 0 2015-09-28 00:00:00.000 NULL 52579 d01142 d011422015928 040 2.990 2 5.98 5.98 0 0 2015-09-28 00:00:00.000 NULL 52580 d0

Oracle 查询与删除表中的重复记录sql语句

方法:  代码如下 复制代码 group by  XX having count(*)>1,rowid,distinct,temporary table,procedure 下面语句可以查询出那些数据是重复的:  代码如下 复制代码 select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) > 1 将上面的>号改为=号就可以查询出没有重复的数据了. 想要删除这些重复的数据,可以使用下面语句进行删除  代码如下 复制代