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

Công việc cho thuê (cập nhật nguyên tử và nhận) từ cơ sở dữ liệu MySQL

Giải pháp của tôi với một mẹo nhỏ:đầu tiên:bạn phải sử dụng một lựa chọn phụ để UPDATE không phải bây giờ là cùng một bảng trước giây:bạn phải khởi tạo @id bằng "(SELECT @id:=0)" khác nếu không tìm thấy hàng nào mà chúng trả về giá trị đặt cuối cùng. Tại đây bạn cũng có thể chỉ định xem chúng trả về 0 hay '' khi không tìm thấy kết quả nào.

UPDATE jobs SET lease=NOW() WHERE id =
  ( SELECT * FROM 
     ( SELECT @id:=id  FROM jobs,(SELECT @id:=0) AS tmp_id
       WHERE TIMESTAMPDIFF(HOUR,lease,NOW())>=8 
       AND NOT complete ORDER BY priority LIMIT 1
     ) AS tmp
  );


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để sử dụng MySQL trong WSL (Hệ thống con của Windows cho Linux)?

  2. So sánh chuỗi UTF8 trong MySQL

  3. Tham chiếu rỗng từ mô-đun trình điều khiển MySQL từ taskpane.js một Phần bổ trợ Microsoft Office

  4. phản hồi dữ liệu ajax luôn là 0 trong php mysql

  5. MySQL SecureString dưới dạng chuỗi kết nối