我有多行需要更新並插入客戶名稱。我如何在一個查詢中執行此操作,而不是使用不同的名稱一次又一次地運行下面的查詢?使用不同的值更新列中的多個錶行
UPDATE orders
SET cust_name = 'Sue'
WHERE p_id = 6
我有多行需要更新並插入客戶名稱。我如何在一個查詢中執行此操作,而不是使用不同的名稱一次又一次地運行下面的查詢?使用不同的值更新列中的多個錶行
UPDATE orders
SET cust_name = 'Sue'
WHERE p_id = 6
您可以使用類似
UPDATE mytable
SET myfield = CASE other_field
WHEN 1 THEN 'value'
WHEN 2 THEN 'value'
WHEN 3 THEN 'value'
END
WHERE id IN (1,2,3)
欲瞭解更多信息檢查Update Multiple Rows With Different Values and a Single SQL Query
你一般不能。至少,MySQL,DB2,SQL Server和PostgreSQL不支持查詢,其中不同的WHERE子句適用於不同的SET子句。
你也不需要。你通常可以做的是使用帶有佔位符的準備好的語句來處理變量,並用參數元組列表執行。根據語言,數據庫適配器和數據庫的不同,這可能會以「批處理」模式執行,這非常有效。
更高的精度需要更多關於您正在使用的語言,數據庫和數據庫適配器的信息。
你在使用什麼數據庫系統? –
我認爲您需要更具體地瞭解您想要如何更新數據以及從哪裏獲得 –
換句話說,您將如何爲查詢提供ID和名稱? –