@TechNOIR

MySQL. Как удалить ограниченное количество строк из таблицы?

Добрый день
Подскажите пожалуйста как удалить ограниченное количество строк из таблицы в MySQL?
Мне нужно удалить 100 строк из таблицы.
Пробовал так:
DELETE FROM b_iblock_section WHERE id IN (SELECT ID FROM b_iblock_section WHERE IBLOCK_ID=4 LIMIT 0,100);

Но получаю ошибку
#1235 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'

Спасибо заранее
  • Вопрос задан
  • 523 просмотра
Решения вопроса 1
orlov0562
@orlov0562
I'm cool!
DELETE FROM b_iblock_section WHERE IBLOCK_ID=4 LIMIT 100


Еще можно обойти вот так
DELETE FROM b_iblock_section WHERE id IN ( 
	SELECT * FROM (
		SELECT ID FROM b_iblock_section WHERE IBLOCK_ID=4 LIMIT 0,100
	) as `id`
)

если нужен именно подзапрос
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@Arik
Если с одной таблицей работает, чем вариант
DELETE FROM b_iblock_section WHERE IBLOCK_ID=4 LIMIT 0,100


не нравится? по вкусу можно order by добавить
Ответ написан
Комментировать
LaRN
@LaRN
Senior Developer
Если верить описанию вот тут:
https://dev.mysql.com/doc/refman/8.0/en/delete.html

То можно вот так:
DELETE FROM b_iblock_section WHERE IBLOCK_ID=4 LIMIT 100;

можно даже в ORDER BY задать порядок следования записей, чтобы указать в каком порядке грохнуть 100 записей.
Ответ написан
Комментировать
Adamos
@Adamos
Я бы для начала определил, какую сотню записей действительно надо удалить.
Скорее всего, на этом этапе окажется, что нужно удалить записи с ID меньше какой-то конкретной цифры. И все эти извращения не понадобятся.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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