Почему при LIMIT 5 изменяется больше строк?

Доброго вечера
spoiler
5cb5f2d9806bf887718080.png

Считай вся ситуация описана в скриншоте

- в 5-м запросе я меняю до 5 строк в таблице
- в 6-м я получаю количество затронутых строк
- в 7-м запросе я записываю число из прошлого запроса. И это число 6. Откуда оно берется я понять не могу?
_cnt возвращает число 6, а на 5-м запросе действительно меняются данные у 6 строк. Почему запрос выходит за пределы? За сколько времени работы с базой впервые с таким сталкиваюсь
  • Вопрос задан
  • 134 просмотра
Решения вопроса 2
BojackHorseman
@BojackHorseman Куратор тега MySQL
...в творческом отпуске...
в базе до update уже есть одна строка с таким _order_id?
Ответ написан
Sanasol
@Sanasol
нельзя просто так взять и загуглить ошибку
- в 6-м я получаю количество затронутых строк

нет в этом запросе вы считаете все строки с указанным order_id и там может быть что угодно.

Чтобы выбрать количество именно обновленных записей есть специальные функции
https://dev.mysql.com/doc/refman/8.0/en/informatio...

Либо вопрос неправильно поставлен, либо задача.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Лимит вроде как только для select, чтобы ограничить вывод, организовать постраничный вывод...
Попробуйте что-то вроде
UPDATE ....
WHERE 
`id` IN (
SELECT `id` FROM (
    SELECT `id` LIMIT 5
) as `t`

)


Вложенный двойной SELECT чтобы обойти ограничение типа нельзя изменять выбираемые данные...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы