Mysql
 sql >> база данни >  >> RDS >> Mysql

Отдаване под наем на работни места (атомно актуализиране и получаване) от MySQL база данни

Моето решение с малък трик:първо:трябва да използвате подизбор, така че UPDATE да не е същата таблица след това:трябва да инициализирате @id с "(SELECT @id:=0)" иначе, ако не е намерен ред, те връщат последната зададена стойност. Тук можете също да посочите дали те връщат 0 или '', когато не бъде намерен резултат.

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. Как да проверите вашата версия на MySQL

  2. Извършване на заявки за множество таблици

  3. Highchart - Използване на PHP, MYSQL и jQuery.get за анализиране на данни

  4. MySQL Изберете конкретна колона

  5. MySQL:Транзакции в множество нишки