=
"DELETE
test1,test2
FROM
test1
LEFT
JOIN
test2
ON
test1.name=test2.name
WHERE
test1.pass=test2.pass"mysql_query($sql)表明换成你的数据表名,试试看。
查看原帖>>
单纯用SQL语句,我们可以利用自增ID列来删除有重复的第一条记录,如果数据表不含自增ID列那么就得依靠游标或应用程序端编程来解决了,因为数据库引擎搞不清楚究竟那一条记录是第一条。下面是利用自增ID列删除t1表a列有重复的第一条记录的SQL语句示例:
delete from t1 where id in (
select min(id) from t1 group by a
having count(1)>1)
需要说明一下,删除有重复的记录中的第一条记录在逻辑上并不能保证数据表不再存在重复,因为,因为重复记录可以有无限多条而不仅仅是只有两条重复一种情况。
下面语句可以删除t1表中a列有重复的记录,对于有重复的记录只保留最新的那一条记录,让该表不再有重复:
第一种:使用触发器,肯定可行第二种:级联删除
第三种:网上的代码,不知是否正确,暂没测试,你可以试一下:
delete table1,table2 from table1 LEFT JOIN table2 ON table1.id = table2.id where table1.id='1'
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)