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

CẬP NHẬT KHÓA DUPLICATE CÓ ĐIỀU KIỆN (Chỉ cập nhật nếu điều kiện nhất định là đúng)

bạn đang sử dụng câu lệnh IF không chính xác

INSERT INTO userlist (username, lastupdate, programruncount, ip)
VALUES (:username, NOW(), 1, :ip)
ON DUPLICATE KEY UPDATE
lastupdate = IF(lastupdate > NOW() - INTERVAL 20 MINUTE, NOW(), lastupdate),
programruncount = IF(lastupdate > NOW() - INTERVAL 20 MINUTE, programruncount + 1,   programruncount),
ip = IF(lastupdate > NOW() - INTERVAL 20 MINUTE, :ip, ip);

vì vậy IF kiểm tra một điều kiện và trả về một trong hai giá trị được cung cấp làm tham số của nó. Xem Toán tử Điều khiển Luồng của MySQL .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Số lượng cột MySQL trên giá trị cụ thể

  2. Gặp lỗi cú pháp MySQL sau khi gửi biểu mẫu

  3. MySQL xác định cột là DUY NHẤT với AUTO_INCREMENT thay vì là Khóa chính

  4. SQL LIMIT lỗi cú pháp

  5. Đá quý MySQL trên OSX 10.7 Lion