MySQL - сортировка по дате в предложении WHERE

0

Я пытаюсь обновить строку MySQL, но у меня возникла проблема с созданием предложения WHERE. Вот что у меня есть до сих пор:

UPDATE tbl 
SET clmn = 'some value' 
WHERE date = ?

Я хочу это заполнить ? с самой последней датой в таблице. Как я могу это сделать? Я попытался использовать ORDER BY но потом выяснил, что он не используется в WHERE. Может ли кто-нибудь помочь мне с этим?

Теги:
sorting
date
sql-update
where-clause

1 ответ

1
Лучший ответ

Используйте подзапрос, который находит самую последнюю дату в таблице:

UPDATE tbl 
SET clmn = 'some value' 
WHERE date = (SELECT t.max_date FROM (SELECT MAX(date) AS max_date FROM tbl) t );
  • 0
    Это приводит к ошибке: #1093 - You can't specify target table 'tbl' for update in FROM clause
  • 0
    @jajajajdoajhodjasodjio Мой обновленный ответ должен работать. Трудно запомнить, когда MySQL будет / не будет реализован подзапрос.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню