Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何删除/更新带有WHERE和子查询的多个入口?_Mysql_Sql_Database - Fatal编程技术网

Mysql 如何删除/更新带有WHERE和子查询的多个入口?

Mysql 如何删除/更新带有WHERE和子查询的多个入口?,mysql,sql,database,Mysql,Sql,Database,如何删除/更新带有WHERE和子查询的多个入口 DELETE FROM photos WHERE user_id = (SELECT id FROM users WHERE city = "Berlin") 如果子查询的结果只有一个id,则它可以工作,但对于多个id则不能工作。多个ID的行为应该像它们是1、2、3或 在这种情况下,我得到的错误是: SQLSTATE[21000]:基数冲突:1242子查询返回更多 超过1行SQL:从照片中删除,其中photos.user_id

如何删除/更新带有WHERE和子查询的多个入口

DELETE FROM photos
WHERE user_id = (SELECT id FROM users WHERE city = "Berlin")
如果子查询的结果只有一个id,则它可以工作,但对于多个id则不能工作。多个ID的行为应该像它们是1、2、3或

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

SQLSTATE[21000]:基数冲突:1242子查询返回更多 超过1行SQL:从照片中删除,其中photos.user_id=选择id 来自city=Berlin的用户


这几乎不取决于数字

如果用户数量巨大,则需要将id作为表加入

DELETE FROM photos
WHERE user_id IN (SELECT id FROM users WHERE city = "Berlin")
那就好像

DELETE photos
FROM photos
INNER JOIN (SELECT id FROM users WHERE city = "Berlin") u1 ON u1.id = photos.user_id
你可以在任何地方使用

从照片中删除 WHERE user_id IN SELECT id FROM users WHERE city=Berlin 您可以使用以下选项:

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

这将是标准的解决方案。