php - 根据MySQL中的条件删除所有行

标签 php mysql sql

我想根据条件删除行。让我详细解释一下,

表1

 -----------------
| t1id | t1detail |
|---------------  |
|  1   |  iii     |
|  2   |  jjj     |
|  3   |  iik     |
|  4   |  jjk     |
 -----------------

表2

 ------------------------
| t2id | t1id | t1detail |
|----------------------- |
|  1   |   1  | iii      |
|  2   |   1  | jja      |
|  3   |   3  | iib      |
|  4   |   1  | jjc      |
|  5   |   2  | iid      |
|  6   |   3  | jje      |
|  7   |   4  | iif      |
|  8   |   2  | jjg      |
|  9   |   3  | iih      |
|  10  |   4  | jj3      |
 ------------------------

现在我需要在table2中同时删除table1 id(t1id),所有从tablet1分配的id都应该被删除。

例如,假设我需要删除 t1id = 1 的意思,它应该从 table1 和 table2 中删除

表1

 1   |  iii 

表2

1   |   1  | iii
2   |   1  | jja
4   |   1  | jjc

应该被删除。请建议我在 mysql 中做什么

我尝试过

    $query = "DELETE FROM table1 INNER JOIN table2 ON table1.t1id = table2.t1id  WHERE  table1.t1id = {$id};
    $result = mysql_query($query, $connection);

但没有成功

最佳答案

我假设您没有外键设置(也许使用 MyISAM 存储?)。如果是这种情况,您将需要指定要从查询中删除的两个表。

DELETE table1, table2
FROM table1
JOIN table2
ON table1.t1id = table2.t1id
WHERE table1.t1id = {$id}

如果您设置了外键,则可以使用级联删除,这也可以解决您的问题。

关于php - 根据MySQL中的条件删除所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24412415/

相关文章:

php - 为什么这个 select for update 示例有效?

sql - 如何将 UNION 更改为 IN 子句?

php - 背景未在移动 View 上调整

php - PHP 5.3 中范围解析和回调的差异

php - 在同一页面上提交表单时如何预填充下拉列表?

php - 怎么注册成功,把表的一栏内容复制到另一栏?

php - 负载平衡 - 如何正确设置?

PHP - 返回文件中的最后一行?

php - 更新整个数据库避免外键和主键约束错误

sql - postgresql 数据库中的 PNG 图像