mysql删除字段重复的数据sql语句

mysql删除字段重复的数据,经过搜索刚开始是这样做的:

delete from v_togo
where tel in (select tel from v_togo group by tel having count(tel) > 1)
and togoid not in (select min(togoid) from v_togo group by tel having count(tel )>1)

结果mysql报错

you can't specify target table 'v_togo' for update in from clause

然后我是这样解决的,分三个步骤:

 代码如下 复制代码

1、create table tmp as select max(togoid) as toid from v_togo group by tel;

先把要处理的字段存储到临时表

2、delete from v_togo where togoid not in (select toid from tmp);

根据临时表进行筛选

3、drop table tmp;

删除临时表

我是想做一个去重复操作,

比如说:字段          id       title                 1           张三                 2           李四                 3           张三                 4           王五                 5           李四

最终结果是                 id       title                 1         张三                 2         李四                 4         王五

替换方案:

 代码如下 复制代码

create table tmp as select min(id) as col1 from blur_article group by title;delete from blur_article where id not in (select col1 from tmp); drop table tmp;

已经测试,尽请使用

这样就ok了。

或者这样操作

 代码如下 复制代码

ALTER IGNORE TABLE `表名` ADD UNIQUE (`唯一索引字段名`);

删除重复的数据,只保留一条。

时间: 2024-10-29 03:05:45

mysql删除字段重复的数据sql语句的相关文章

MySQL复制表结构 表数据sql语句总结

复制整个表  代码如下 复制代码 create table new_table select * from old_table; 复制表,不复制数据  代码如下 复制代码 create table new_table select * from old_table where 0; 主键,索引,自增等其他额外特征不会被带到新表中.这点和其他的数据库产品类似. 上面为核心两句了 1.MySQL复制表结构及数据到新表  代码如下 复制代码 CREATE TABLE `新表` SELECT * FRO

删除重复数据sql语句

删除重复数据sql语句 方法一 假设有重复的字段为name,address,要求得到这两个字段唯一的结果集 select identity(int,1,1) as autoid, * into #tmp from tablename select min(autoid) as autoid into #tmp2 from #tmp group by name,autoid select * from #tmp where autoid in(select autoid from #tmp2) 方

mysql教程删除数据sql语句用法

  mysql教程删除数据sql语句用法 DELETE FROM 语句用于从数据库表中删除记录. 语法 DELETE FROM table_name WHERE column_name = some_value 注释:SQL 对大小写不敏感.DELETE FROM 与 delete from 等效. 为了让 PHP 执行上面的语句,我们必须使用 mysql_query( 函数.该函数用于向 SQL 连接发送查询和命令. 例子 稍早时,我们在本教程中创建了一个名为 "Person" 的表

mysql删除重复记录的sql语句与查询重复记录(1/4)

方法1 delete yourtable where [id] not in ( select max([id]) from yourtable group by (name + value)) 方法2 delete a from 表 a left join( select (id) from 表 group by name,value )b on a.id=b.id where b.id is null 查询及删除重复记录的sql语句 查询及删除重复记录的sql语句 1.查找表中多余的重复记录

mysql删除重复记录的sql语句与查询重复记录

方法1 delete yourtable where [id] not in ( select max([id]) from yourtable group by (name + value)) 方法2 delete a from 表 a left join(select (id) from 表 group by name,value)b on a.id=b.id where b.id is null 查询及删除重复记录的sql语句 1.查找表中多余的重复记录,重复记录是根据单个字段(peopl

查询及删除重复记录的SQL语句

查询及删除重复记录的sql语句 (一) 比方说 在a表中存在一个字段"name", 而且不同记录之间的"name"值有可能会相同, 现在就是需要查询出在该表中的各记录之间,"name"值存在重复的项: select name,count(*) from a group by name having count(*) > 1 如果还查性别也相同大则如下: select name,sex,count(*) from a group by nam

删除重复记录的sql语句

  删除重复记录的sql语句 我们提供了两款删除重复记录的sql语句,一种是用id not in来实例,也算是联合查询的方法吧,第二种是临时表来删除重复记录. 1),delete from tablename where id not in (select max(id) from tablename group by col1,col2,...) 2),select distinct * into temp from tablename delete from tablename insert

mysql利用命令导出数据sql语句

命令行source 导入数据库:  代码如下 复制代码 1,将要导入的.sql文件移至bin文件下,这样的路径比较方便 2,同上面导出的第1步 3,进入MySQL:mysql -u 用户名 -p 如我输入的命令行:mysql -u root -p    (输入同样后会让你输入ySQL的密码) 4,在MySQL-Front中新建你要建的数据库,这时是空数据库,如新建一个名为blog的目标数据库(mysql>create database blog;) 5,输入:mysql>use 目标数据库名

mysql数据库实现关联表更新sql语句

比如有两张表,其中一张表某个字段的值要关联另一张表进行统计,就要用到mysql的update方法,并且left join另一张表进行联合查询. 表1 表2 需求是:统计表1中id,也就是表2中的tagid出现的次数,更新到表1的videonum字段中.这时候需要关联两张表更新表1并且进行统计. mysql关联表更新统计 sql语句如下:  代码如下 复制代码 UPDATE v9_keyword as a LEFT JOIN v9_keyword_data as b on a.id=b.tagid