Попытка обновить таблицу со значением из той же таблицы

0
UPDATE seasons SET good=good+1 WHERE id = (SELECT id FROM seasons ORDER BY id DESC LIMIT 1)

Когда я запускаю эту команду, я получаю ошибку: "# 1093 - таблица" сезоны "указана дважды, как в качестве цели для" ОБНОВЛЕНИЯ ", так и как отдельный источник данных".

Теги:
mysqli

1 ответ

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

Это ограничение MySQL.

Один из способов - использовать JOIN. Однако для этого, вероятно, лучше использовать LIMIT и ORDER BY:

UPDATE seasons s 
    SET s.good = s.good + 1 
    ORDER BY id DESC
    LIMIT 1;

Это предполагает, что id не дублируется в таблице, но это кажется разумным предположением для столбца с именем id.

  • 0
    Я прочитал об обходном пути использования псевдонима для таблицы в обновленной части запроса, чтобы исправить проблему. Насколько вы знаете, это верный вариант? Никогда не пытался, так как у меня никогда не было проблемы раньше

Ещё вопросы

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