繁体   English   中英

来自SELECT的多个UPDATE WHERE子句中的多行[Mysql]

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM