回覆列表
-
1 # 使用者2442513670858
-
2 # lanfengz3
MYSQL資料庫欄位內容批次更新:
利用sql中case when結構可以根據不同的條件批次更新,舉例如下:
UPDATE order
SET display_order = CASE id
WHEN 1 THEN "value"
WHEN 2 THEN "value"
WHEN 3 THEN "value"
END
WHERE id IN (1,2,3)
這句sql的意思是,更新display_order 欄位,如果id=1 則display_order 的值為3,如果id=2 則 display_order 的值為4,如果id=3 則 display_order 的值為5。
有啊,比如when和then語句就可以實現批次更新語句
UPDATE table_own SET
cloumn_own= CASE id
WHEN 1 THEN "a"
WHEN 2 THEN "b"
WHEN 3 THEN "c"
END
WHERE id IN (1,2,3);
這個批次更新語句的意思就是說,更新cloumn_own欄位,如果id=1 則cloumn_own=a,如果id=2 則cloumn_own=b,如果id=3 則cloumn_own=c
記住,其實end 後面的where語句是不可必需的,但最好是帶上
如果不加where條件,會使整個表的資料更新,不滿足條件的對應的值會設定成預設值(導致你執行的前面n-1次都是無效,保留的是第n次)
帶上where條件的話,就不會出現這種情況了