Cú pháp cập nhật hàng loạt với CASE WHEN / THEN / ELSE như sau -
CẬP NHẬT yourTableName đặt yourColumnName =case khi yourColumnName =Value1 thì anyUpdatedValue1khi yourColumnName =Value2 thì anyUpdatedValue2 khi yourColumnName =Value3 thì anyUpdatedValue3khi yourColumnName =Value4 thì bất kỳĐể hiểu cú pháp trên, trước tiên chúng ta hãy tạo một bảng. Truy vấn để tạo bảng như sau -
mysql> tạo bảng CaseUpdateDemo-> (-> Id int, -> Tên varchar (100) ->); Truy vấn OK, 0 hàng bị ảnh hưởng (0,78 giây)Chèn một số bản ghi trong bảng bằng lệnh chèn. Truy vấn như sau -
mysql> chèn vào các giá trị CaseUpdateDemo (1, 'John'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,17 giây) mysql> chèn vào các giá trị CaseUpdateDemo (2, 'Carol'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,27 giây ) mysql> chèn vào các giá trị CaseUpdateDemo (3, 'Mike'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,11 giây) mysql> chèn vào các giá trị CaseUpdateDemo (4, 'Bob'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,15 giây)Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select. Truy vấn như sau -
mysql> select * from CaseUpdateDemo;Đầu ra
+ ------ + ------- + | Id | Tên | + ------ + ------- + | 1 | John || 2 | Carol || 3 | Mike || 4 | Bob | + ------ + ------- + 4 hàng trong bộ (0,00 giây)Bây giờ bạn có thể viết truy vấn mà chúng ta đã thảo luận ở trên để cập nhật id cột với Case WHEN THEN ELSE. Truy vấn như sau -
mysql> update CaseUpdateDemo set Id =case when Id =1 then 1001-> when Id =2 then 1002-> when Id =3 then 1003-> when Id =4 then 1004-> else Id-> end; Truy vấn OK, 4 hàng bị ảnh hưởng (0,15 giây) Các hàng phù hợp:4 Đã thay đổi:4 Cảnh báo:0Bây giờ bạn có thể kiểm tra xem bảng có được cập nhật cho cột ID hay không bằng cách sử dụng câu lệnh select. Truy vấn như sau -
mysql> select * from CaseUpdateDemo;Đầu ra
+ ------ + ------- + | Id | Tên | + ------ + ------- + | 1001 | John || 1002 | Carol || 1003 | Mike || 1004 | Bob | + ------ + ------- + 4 hàng trong bộ (0,00 giây)