批量删除操作
1、错误写法SQL:DELETE FROM table WHERE ID IN(SELECT ID FROM table)
报错:You can't specify target table 'saas_tenant_student' for update in FROM clause
原因:我们不能SELECT某些值,然后直接进行更新操作
2、利用中间表巧妙解决(将SELECT出的结果再通过中间表SELECT一遍)
SQL:DELETE FROM table WHERE t.ID IN(SELECT ID FROM(SELECT ID FROM table) t);
错误:Truncated incorrect DOUBLE value: 'VhxidcJEnrcwNIcVHwysVM6z2udOeW2S'
3、完美写法
SQL:DELETE IGNORE FROM table WHERE t.ID IN(SELECT ID FROM(SELECT ID FROM table) t);
原理:IGNORE 关键字,可以将其中错误的数据行忽略,适用于批量操作大量的数据,当其中某些错误,可以忽略不记的情况
————————————————
版权声明:本文为****博主「程序员Forlan」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.****.net/qq_36433289/article/details/120193424