mysql - 如何使用 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"))
解决方案
您可以使用WHERE IN
DELETE FROM photos
WHERE user_id IN (SELECT id FROM users WHERE city = "Berlin")
推荐阅读
- python - 有没有办法遍历 pyspark 数据框并在没有显式会话密钥的情况下识别会话?
- powerbi - 如何在其他表的DAX UNION之后过滤表
- c# - Web Api 2、OWIN 和 Identity Server 的 CORS 配置问题
- javascript - 通过类名获取输入字段的值,其中类名是变量
- java - 片段android的缓慢创建
- .net - Azure 应用服务和.NET Framework 4.8 版本
- c# - 集合运算(补和差)
- mysql - 在MYSQL中使用另一个表的属性值作为另一个表的属性的默认值
- apache-kafka - Kafka Connect Protobuf 配置
- intershop - 使用 ISSLOT 标签获取插槽项目的位置