比如我有table1
與field1
和field2
和想要做的事,如:我可以使用SELECT查詢中的不同值更新多個記錄嗎?
UPDATE table1
SET field1, field2 = (SELECT field1, field 2 FROM tableXYZ)
WHERE field 3 = 'foobar'
或做我必須做的多組,運行相同的SELECT查詢幾次?
比如我有table1
與field1
和field2
和想要做的事,如:我可以使用SELECT查詢中的不同值更新多個記錄嗎?
UPDATE table1
SET field1, field2 = (SELECT field1, field 2 FROM tableXYZ)
WHERE field 3 = 'foobar'
或做我必須做的多組,運行相同的SELECT查詢幾次?
假設你使用的任何數據庫都支持它,你可以加入表格。 SO:
Update table1
set field1 = tbx.field1,
field2 = tbx.field2
from table1 join tablexyz on --some key value join
因此,我添加了'你使用的任何數據庫都支持' – MikeS
您可以通過將列置於左括號之間來執行元組賦值。
UPDATE table1
SET (column1, column2) = (SELECT col1, col2
FROM tableXYZ
WHERE ...)
WHERE column3 = 'foobar';
以上是標準SQL,但不是所有的DBMS都支持。
請注意,您必須使用WHERE
子句中的子選擇,以確保只選擇返回單行(您通常會提出這樣一個共同的相關子查詢)。
這是這樣的事情,你應該先試試纔可以試試。 – Crowcoder
您正在使用哪些DBMS? Postgres的?甲骨文? DB2?火鳥? –
你似乎在問題本身中有正確的答案。你甚至嘗試執行它?你甚至可以在一個(從tableXYZ中選擇field1,field2中where something ='something')添加一個where條件 – shashwatZing