我有这个查询:
UPDATE Table1 SET Table1.parameterA = 1
WHERE Table1.parameterB = ?
AND Table1.parameterC = (
SELECT Table2.id
FROM Table2
WHERE Table2.parameterD = ? AND Table2.date > ?
)
这不起作用,因为选择返回多行:
{ 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 > ?
)