Я пытаюсь удалить строки из таблицы, но получаю сообщение об ошибке.
DELETE FROM `chat_messages` ORDER BY `timestamp` DESC LIMIT 20, 50;
Я получаю эту ошибку на 50:
У вас есть ошибка в синтаксисе SQL; проверьте руководство, которое соответствует вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с '50' в строке 1
Понятия не имею что не так.
Вы не можете указать смещение в предложении DELETE
в LIMIT
.
Таким образом, единственный способ сделать это - переписать ваш запрос примерно так:
DELETE FROM `chat_messages` WHERE id IN (select id from (select id
FROM `chat_messages`
ORDER BY `timestamp` DESC
LIMIT 20, 50) x)
Предположим, у вас есть первичный ключ id
столбец
UPD : вам нужно реализовать двойное вложение, чтобы обмануть mysql, так как он не позволяет выбирать из измененной в данный момент таблицы (спасибо Мартину Смиту)