我有comments
桌子。这样的结构
id parent_id user_id comment
-- --------- ------- -------
我想删除相关值不正确的记录。
对于删除 user_id 为无效值的记录,我使用此查询
DELETE FROM `comments` WHERE `user_id` NOT IN (SELECT `id` FROM `users`)
但是当我尝试删除 parent_id 是无效数据的记录时,我使用了这个查询
DELETE FROM `comments` WHERE `parent_id` NOT IN (SELECT `id` FROM `comments`)
我收到这个错误
错误代码:1093 您不能在 FROM 子句中指定更新的目标表“评论”
您可能可以通过级联外键约束来做您想做的事情。
也就是说,您可以使用left join
以下方法完成此操作:
DELETE c
FROM comments c LEFT JOIN
comments cp
ON c.parent_id = cp.id
WHERE cp.id IS NULL AND
c.parent_id IS NOT NULL;
注意条件c.parent_id IS NOT NULL
。(几乎)您对列进行的任何比较都暗示了这一点,包括NOT IN
.
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句