Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

SQL nếu không cập nhật null

Bạn có thể sử dụng case biểu thức cho điều này. Tôi nghĩ rằng logic bạn muốn là:

UPDATE users 
SET 
    username = Param1
    email = case when email is not null then Param2 end,
    password = case when password is not null then Param3 end
WHERE id = Param4;

Hoặc nếu bạn muốn cập nhật email và mật khẩu nếu cả hai không phải là null sau đó:

UPDATE users 
SET 
    username = Param1
    email = case when email is not null and password is not null then Param2 end,
    password = case when email is not null and password is not null then Param3 end
WHERE id = Param4;

Bây giờ câu hỏi đã được cập nhật và tôi hiểu rằng bạn muốn thực hiện cập nhật nếu và chỉ khi cả email và mật khẩu tham số không phải là các chuỗi rỗng. Vì vậy, bạn thực sự muốn lọc . Tôi sẽ đặt cụm từ này là:

UPDATE users 
SET username = Param1, email = Param2, password = Param3 
WHERE id = Param4 and Param2 <> '' and Param3 <> ''

Hoặc nếu bạn muốn tách logic cho cả hai tham số:

UPDATE users 
SET 
    username = Param1, 
    email = case when Param2 <> '' then Param2 else email end, 
    password = case when Param3 <> '' then Param3 else password end
WHERE id = Param4;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tại sao MySQL với FORMAT bỏ qua ORDER?

  2. ánh xạ dữ liệu excel sang cơ sở dữ liệu mysql

  3. Truy vấn SQL để bao gồm thẻ WooC Commerce cụ thể

  4. MySQL không kết nối trong cmd

  5. Các chiến lược cho kiểu liên kết Một-Nhiều trong đó nhiều mục nhập phụ có giá trị hàng triệu