MySQL无法从另一个表中操作为true的表中删除多行

时间:2014-02-16 18:38:02

标签: mysql phpmyadmin

我如何选择和删除所有这些行?

phpmyadmin给了我:

#1242 - Subquery returns more than 1 row

DELETE FROM zoo_category_item WHERE (SELECT id FROM zoo_item WHERE params = '1')

1 个答案:

答案 0 :(得分:1)

我认为你需要在表之间建立一些联系。类似的东西:

DELETE FROM zoo_category_item
    WHERE zoo_category_item.id in (SELECT id FROM zoo_item WHERE params = '1');

但我不知道相应列的名称。

您收到错误,因为子查询返回多个值。在where的上下文中,MySQL会期望一个标量子查询 - 一行,一列。

如果要删除zoo_category_item中的所有行,如果该条件为真,那么您可以这样做:

DELETE FROM zoo_category_item
    WHERE exists (SELECT id FROM zoo_item WHERE params = '1');