怎么同时删除两个mysq数据库表中的相同数据!

怎么同时删除两个mysq数据库表中的相同数据!,第1张

如果我没看错你的意思的话,应该是想删除两个表中所有name字段相同且pass字段相同的数据?这样可以用一条SQL语句来删除,$sql

=

"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'


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6709973.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存