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

Cập nhật dữ liệu cột mà không cần sử dụng bảng tạm thời trong MySQL?


Đối với điều này, hãy sử dụng câu lệnh CASE. Điều này sẽ hoạt động ngay cả khi không sử dụng bảng tạm thời. Đầu tiên chúng ta hãy tạo một bảng -

 mysql> tạo bảng DemoTable -> (-> UserName varchar (100), -> UserStatus varchar (100) ->); Truy vấn OK, 0 hàng bị ảnh hưởng (0,74 giây) 

Chèn một số bản ghi vào bảng bằng lệnh chèn -

 mysql> chèn vào giá trị DemoTable ('John', 'Active'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,29 giây) mysql> chèn vào giá trị DemoTable ('Chris', 'Inactive'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,19 giây) mysql> chèn vào giá trị DemoTable ('Bob', 'Không hoạt động'); Truy vấn OK, 1 hàng bị ảnh hưởng (0,32 giây) mysql> chèn vào giá trị DemoTable ('Robert', 'Hoạt động'); 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âu lệnh select -

 mysql> select * từ DemoTable; 

Đầu ra

Điều này sẽ tạo ra kết quả sau -

 + ---------- + ------------ + | Tên người dùng | UserStatus | + ---------- + ------------ + | John | Hoạt động || Chris | Không hoạt động || Bob | Không hoạt động || Robert | Hoạt động | + ---------- + ------------ + 4 hàng trong bộ (0,00 giây) 

Sau đây là truy vấn để cập nhật dữ liệu cột bằng CASE -

 mysql> update DemoTable -> set UserStatus =CASE UserStatus WHEN 'Inactive' THEN 'Active' ELSE 'Inactive' END; Truy vấn OK, 4 hàng bị ảnh hưởng (0,28 giây) Các dòng phù hợp:4 Đã thay đổi:4 Cảnh báo:0  

Hãy để chúng tôi kiểm tra bản ghi bảng một lần nữa -

 mysql> select * từ DemoTable; 

Đầu ra

Điều này sẽ tạo ra kết quả sau -

 + ---------- + ------------ + | Tên người dùng | UserStatus | + ---------- + ------------ + | John | Không hoạt động || Chris | Hoạt động || Bob | Hoạt động || Robert | Không hoạt động | + ---------- + ------------ + 4 hàng trong bộ (0,00 giây)