如何删除~除了pk外,其他字段都相同的行呢?
解决方案 »
- mysql设置事务隔离级别没有效果???
- MySQL function的问题
- mysqldump 备份 4g 大表
- 如何让一个存储过程返回一个select结果和一个变量值
- 求一SQL语句,同一字段相同值的记录最多显示3条记录(MYSQL)
- linux下mysql编程
- 请教一个问题:root的权限丢失了,怎么恢复,我的是WINDOWS 2000环境?看了一些文章没有明白。
- 邮件地址
- 在命令行执行Sql脚本,报 unknown command '\L' 错误
- mysql 多字段多关键词根据匹配度排序查找,2千万数据。如何优化sql
- 高人指点,我新建的mysql数据库怎么没有默认的函数库啊?
- 类似这种周消费榜怎么做好一些?
from tb A,(select id from tb where id not in (select min(id) from tb group by col2,col2 having count(*)>1)) B
where A.id =B.id
原表:
id(pk) col1 col2 col3 col4......................
1 value1 value2 value3 value4
2 value2 value2 value3 value4
3 value3 value2 value3 value4
4 value1 value2 value3 value4
希望返回结果:
id(pk) col1 col2 col3 col4......................
1 value1 value2 value3 value4
2 value2 value2 value3 value4
3 value3 value2 value3 value4因为,原表第一条数据和第四条数据除了PK外,其他行的内容都一样所以删除啊~
select min(id) from tb group by col2,col2 having count(*)>1改成:select min(id) from tb group by col2,col3,col4............... having count(*)>1
on a.col1=b.col1 and a.col2=b.col2 and a.col3=b.col3 and a.col4=b.col4 and a.id>b.id
我db的数据量比较大啊~大概有1kw条啊~所以想效率高点啊~您说的这个我也执行过~运行了大概2个小时还是没有结果啊。
建一个新表得了。