Computer >> Máy Tính >  >> Lập trình >> MySQL

Cập nhật hàng loạt MySQL với CASE WHEN / THEN / ELSE?


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:0 

Bâ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)