您的位置:首页 > 数据库 > MySQL

MySQL管理数据表

2015-08-03 10:59 1536 查看

一、删除重复性记录,只保留ID最小的一条
方法一:
delete from YourTable
where [id] not in (
select max([id]) from YourTable
group by (name + value))
注意:1

.MySQL数据库不允许子查询in中的from与原查询中的from表相同;
2.Mysql中in自查询效率很低;
此方法,不好用。
解决办法,

1.把YourTable复制一份YourTable_copy,写在in自查询里,

2.使用in子查询,多用一个select可以提高一些查询效率。

方法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

当数据表的数据量较大时,可以尝试写代码解决。

参考:
MySQL in自查询效率慢优化
https://www.geek-share.com/detail/2547529341.html

版权声明:本文为博主原创文章,未经博主允许不得转载。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MySQL