首页 > 解决方案 > 如何使用 WHERE 和子查询删除/更新多个条目?

问题描述

如何使用 WHERE 和子查询删除/更新多个条目?

DELETE FROM photos
WHERE user_id = (SELECT id FROM users WHERE city = "Berlin")

如果子查询的结果只有一个 id 它可以工作,但对于多个它不会。多个 ID 应该表现为“1 OR 2 OR 3 OR ...”

在这种情况下我得到的错误:

SQLSTATE[21000]:基数违规:1242 子查询返回超过 1 行(SQL:DELETE FROM photos WHERE photos.user_id = (SELECT id FROM users WHERE city = "Berlin"))

标签: mysqlsqldatabase

解决方案


您可以使用WHERE IN

DELETE FROM photos
WHERE user_id IN (SELECT id FROM users WHERE city = "Berlin")

推荐阅读