SQL 中的多記錄更新
假設您遇到需要更新特定表中多筆記錄的場景。為了實現這一點,您需要利用適當的 SQL 語法。在此範例中,我們將利用設定表,其中包含 config_name 和 config_value 欄位。
最初,您嘗試使用以下查詢執行更新:
UPDATE config SET t1.config_value = 'value' , t2.config_value = 'value2' WHERE t1.config_name = 'name1' AND t2.config_name = 'name2';
但是,此查詢不正確,因為它嘗試使用相同的表別名(t1 和 t2)更新不同的記錄。要解決此問題,您可以使用多表更新語法或條件更新方法:
多表更新語法或條件更新方法:
UPDATE config t1 JOIN config t2 ON t1.config_name = 'name1' AND t2.config_name = 'name2' SET t1.config_value = 'value', t2.config_value = 'value2';
此查詢連接使用別名t1 和t2 兩次配置表,然後使用ON 子句指定聯結條件。然後 SET 子句將新值指派給適當的欄位。
UPDATE config SET config_value = CASE config_name WHEN 'name1' THEN 'value' WHEN 'name2' THEN 'value2' ELSE config_value END WHERE config_name IN('name1', 'name2');
以上是如何在單一 SQL 查詢中更新多筆記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!