首頁 > 資料庫 > mysql教程 > 如何在單一 SQL 查詢中更新多筆記錄?

如何在單一 SQL 查詢中更新多筆記錄?

Mary-Kate Olsen
發布: 2024-12-08 00:59:11
原創
282 人瀏覽過

How Can I Update Multiple Records in a Single SQL Query?

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');
登入後複製
條件更新:

此查詢使用 CASE 語句為不同的 config_name 指定不同的值價值觀。 WHERE 子句將更新限制為僅影響 config_name 為「name1」或「name2」的記錄。 這些方法提供了在單一查詢中更新多個記錄的有效方法。透過使用適當的語法,您可以有效地修改 SQL 資料庫中的資料。

以上是如何在單一 SQL 查詢中更新多筆記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板