Min løsning med et lille trick:først:du skal bruge et undervalg, så UPDATE ikke nu, det er den samme tabel anden sekund:du skal initialisere @id'et med "(SELECT @id:=0)" ellers returnerer den ingen række. den sidst indstillede værdi. Her kan du også angive, om de returnerer 0 eller '', når der ikke findes noget resultat.
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
);