Помогите составить верно запрос

Необходимо обновить значение Answer где idLog max мой код не работает. Заранее спасибо!!!

UPDATE log_sms SET Answer= ? where (SELECT MAX(idLog) FROM log_sms order by Answer desc limit 1)

Ответы (1 шт):

Автор решения: Regent

Результат подзапроса в WHERE надо с чем-то сравнивать. В данном случае - с idLog

Также из-за того, что обновляется та же таблица, по которой идёт подзапрос, придётся использовать промежуточный результат

Итоговый вариант:

UPDATE log_sms
SET Answer = ?
WHERE idLog = (SELECT * FROM (SELECT MAX(idLog) FROM log_sms) as t)

Есть вариант без подзапросов (например, в этом ответе):

UPDATE log_sms
SET Answer = ?
ORDER BY idLog DESC
LIMIT 1
→ Ссылка