经常我们会删除 非系统管理权限的数据
可以会这样写:
DELETE
FROM
tb_sys_permission
WHERE id NOT IN
(SELECT
id
FROM
tb_sys_permission
WHERE description LIKE ('%系统管理%'))
恭喜你,入坑了
其实应该要这样写
DELETE
FROM
tb_sys_permission
WHERE id NOT IN
(SELECT
id
FROM
(SELECT
id
FROM
tb_sys_permission p
WHERE p.description LIKE ('%系统管理%')) b)
还要再查询外面包多一层临时表才能删除,这个也是MYSQL重点考察删除重复数据的问题
本文讲解了一种在MySQL中删除特定记录的正确方法,避免了直接使用子查询可能导致的误删问题。通过创建一个外部临时表,确保只有非系统管理权限的数据被删除,这对于维护数据库的完整性和安全性至关重要。
1044

被折叠的 条评论
为什么被折叠?



