php - 通过 id 和 parent_id 删除

标签 php mysql sql-delete

我有一个看起来与此类似的表格:

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/

相关文章:

php - MYSQL选择每个 "page id"的3个结果

javascript - SSE 加载大量数据并使 AJAX post 请求瘫痪

php - $_POST方法请求限制

php - 根据用户处理 PHP 时区

php - MySQL 更新需要很长时间

java - 使用具有 2 个以上参数的准备语句删除记录

sql - 通过单个请求删除 ActiveRecord 关联

php pow 函数返回 NAN

Mysql子查询别名

php - MySql 删除操作比较日期时间与当前日期时间