J'ai une requête UPDATE
avec une clause ORDER BY
. J'ai copié la même requête à SELECT
avec la même clause ORDER BY
et j'obtiens des résultats différents.ordre de mise à jour par clause de commande différente puis sélectionnez ordre par
Requête Mise à jour:
UPDATE t_locks
SET server_guid = 11028790,
lock_time_to_live = TIMESTAMPADD(MINUTE,5,NOW())
WHERE
(server_guid IS NULL OR NOW() > lock_time_to_live OR lock_time_to_live IS NULL)
AND lock_key_id = 3
ORDER BY flag DESC, last_time_processed ASC
LIMIT 10;
Sélectionner une requête:
SELECT * FROM t_locks
WHERE
(server_guid IS NULL OR NOW() > lock_time_to_live OR lock_time_to_live IS NULL)
AND lock_key_id = 3
ORDER BY flag DESC, last_time_processed ASC
LIMIT 10;
Note: Je ne vérifie pas les résultats de l'UPDATE
avec ce SELECT
. Suspect: En plus de la ORDER BY
normale dans la requête SELECT
, il ajoute un troisième paramètre qui est ID
. Je m'attendrais à ce que le UPDATE
fasse la même chose.
Vérifiez s'il y a des actions de déclenchement définies sur 't_locks'? –
@Ravinder Il n'y en a pas. – BrainPicker