簡體   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