Помогите составить верно запрос
Необходимо обновить значение 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