首頁 > 資料庫 > mysql教程 > 如何在單一 MySQL 查詢中更新具有不同值的多行?

如何在單一 MySQL 查詢中更新具有不同值的多行?

Patricia Arquette
發布: 2025-01-17 11:17:14
原創
220 人瀏覽過

How Can I Update Multiple Rows with Different Values in a Single MySQL Query?

高效率更新不同值的多個 MySQL 行

MySQL 提供了多種方法來在單一查詢中更新具有不同值的多行。 雖然 IF 語句可以工作,但 CASE 語句提供了更簡潔和可讀的解決方案,特別是在處理多個條件時。

讓我們考慮一個場景,我們需要更新 table_users 表,根據特定辦公室內的使用者角色分配不同的 cod_user 值。 下面示範了比使用多個 IF 語句更簡潔的方法:

此查詢利用 CASE 語句根據 cod_user 更新 user_rol

<code class="language-sql">UPDATE table_users
SET cod_user = CASE
    WHEN user_rol = 'student' THEN '622057'
    WHEN user_rol = 'assistant' THEN '2913659'
    WHEN user_rol = 'admin' THEN '6160230'
    END,
date = '12082014'
WHERE user_rol IN ('student', 'assistant', 'admin')
AND cod_office = '17389551';</code>
登入後複製

這是一個細分:

  • CASE 語句: 這可以優雅地處理多個條件。每個 WHEN 子句都會檢查一個條件,如果為真,則指派對應的 cod_user 值。
  • 多重條件: CASE 語句有效管理不同的使用者角色。
  • date 更新: 所有符合行的 date 欄位皆更新為「12082014」。 請記得調整日期格式(本例為「YYYYMMDD」)以符合您的資料庫設定。
  • WHERE 子句: 此過濾更新僅影響 user_rol 為「學生」、「助理」或「管理員」且 cod_office 為「17389551」的行。

與使用多個單獨的 UPDATE 語句或複雜的巢狀 IF 結構相比,此方法提供了更有效率且可維護的解決方案。 CASE 語句增強了可讀性並簡化了整體查詢邏輯。

以上是如何在單一 MySQL 查詢中更新具有不同值的多行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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