我想根据条件删除行。让我详细解释一下,
表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/