我有一个看起来与此类似的表格:
rule_id parent_id
1 0
2 0
3 2
4 2
5 3
当我使用 DELETE 查询并删除比方说 id 2 时,我想删除具有 parent_id 作为该 id 的行。
删除成功后,表格应该是这样的:
rule_id parent_id
1 0
5 3
所以所有具有 2 的东西现在都消失了。
我已经试过了,我确信它会起作用,但它没有。
$sql = 'DELETE FROM ' . RULES_TABLE .
' WHERE rule_id = ' . (int) $rule_id .
(($type == 'cat') ? ' AND parent_id = ' . (int) $rule_id : '');
最佳答案
可能很傻,但你为什么不直接使用 INNODB 中旧的良好参照完整性呢?
使用 ON DELETE CASCADE
子句设置自反外部引用键 (rule_id, parent_id)
可以轻松解决问题。
关于php - 通过 id 和 parent_id 删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12769457/