删除mysql数据库数据
一张一千万数据的表,里面有字段点击单价,点击量,下载量,市场平均点击量标题这几个字段,现在要对里面的数据删除规则如下,删除:点击单价,点击量,下载量,市场平均点击量一致的...
一张一千万数据的表,里面有字段 点击单价,点击量,下载量,市场平均点击量 标题 这几个字段,现在要对里面的数据删除
规则如下,删除:点击单价,点击量,下载量,市场平均点击量一致的数据,只保留一条,这个mysql应该怎么写比较好 展开
规则如下,删除:点击单价,点击量,下载量,市场平均点击量一致的数据,只保留一条,这个mysql应该怎么写比较好 展开
3个回答
展开全部
倒是有个思路,不过你的记录量太大,这个执行效率估计就有问题了。
我的思路是
1、先select 出来一个记录集,条件是点击单价,点击量,下载量,市场平均点击量一致的数据,另外一个最重要的条件就是选出行号最大的记录(因为你要保留一条,怎么用行号这个网上有很多说明,我就不说了),这样,你就可以获得,你需要保留的记录集了。
大概的语句是:
select max(rec_no),a,b,c,d from table where a=b and a=c and a=d group by a,b,c,d
a,b,c,d代表你的那几个字段,rec_no,如果你的表里没有这个字段的话,就要上网查一下怎么给mysql记录加行号,但是唯一担心的就是效率会慢,因为你的记录太多了
2、有了这个记录集,你可以有两种处理方式,一种是手工处理,把上面的结果集插入一个空表里,然后删除旧表,再把空表改名就可以了。另一种是写语句处理delete的时候,和你检索出来的数据集匹配,符合条件的留下,否则删除。
这个我没有实际的环境,仅仅提供个参考思路
我的思路是
1、先select 出来一个记录集,条件是点击单价,点击量,下载量,市场平均点击量一致的数据,另外一个最重要的条件就是选出行号最大的记录(因为你要保留一条,怎么用行号这个网上有很多说明,我就不说了),这样,你就可以获得,你需要保留的记录集了。
大概的语句是:
select max(rec_no),a,b,c,d from table where a=b and a=c and a=d group by a,b,c,d
a,b,c,d代表你的那几个字段,rec_no,如果你的表里没有这个字段的话,就要上网查一下怎么给mysql记录加行号,但是唯一担心的就是效率会慢,因为你的记录太多了
2、有了这个记录集,你可以有两种处理方式,一种是手工处理,把上面的结果集插入一个空表里,然后删除旧表,再把空表改名就可以了。另一种是写语句处理delete的时候,和你检索出来的数据集匹配,符合条件的留下,否则删除。
这个我没有实际的环境,仅仅提供个参考思路
追问
这个我已经执行过了,但是由于量太大了,执行效率非常慢,如果有类似全文搜索的方式到是可以看一下!
壹寰(深圳)科技文化有限公司
2021-03-27 广告
2021-03-27 广告
不同公司提供的方案也不一样。以上回答如果还觉得不够详细,可以来咨询下壹寰(深圳)科技文化有限公司。91数据恢复是壹寰(深圳)科技文化有限公司旗下专业数据恢复品牌,91数据恢复专注于勒索病毒数据恢复、勒索病毒数据修复、数据库修复、数据库解密恢...
点击进入详情页
本回答由壹寰(深圳)科技文化有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询