![](/img/trans.png)
[英]Select multiple rows' ids and use them for the WHERE IN clause in an update query
[英]Multiple UPDATE from SELECT with multiple rows in WHERE clause [Mysql]
我有这个问题:
UPDATE Table1 SET Table1.parameterA = 1
WHERE Table1.parameterB = ?
AND Table1.parameterC = (
SELECT Table2.id
FROM Table2
WHERE Table2.parameterD = ? AND Table2.date > ?
)
这不起作用,因为select返回多行:
{ Error: ER_SUBQUERY_NO_1_ROW: Subquery returns more than 1 row }
是否可以通过解决方法来执行此多次更新?
当使用=
SQL时需要一个值。
如果你想使用结果列表 - 你应该像这样使用IN
:
UPDATE Table1 SET Table1.parameterA = 1
WHERE Table1.parameterB = ?
AND Table1.parameterC IN (
SELECT Table2.id
FROM Table2
WHERE Table2.parameterD = ? AND Table2.date > ?
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.