我如何选择和删除所有这些行?
phpmyadmin给了我:
#1242 - Subquery returns more than 1 row
DELETE FROM zoo_category_item WHERE (SELECT id FROM zoo_item WHERE params = '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');