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中文網其他相關文章!