Удаление n-ой строки mysql - PullRequest
       10

Удаление n-ой строки mysql

6 голосов
/ 03 марта 2011

Я использую MySQL v5.0.45 и пытаюсь удалить n-ую строку в таблице независимо от ее идентификационного номера.Я настроил прототип на PHP, прежде чем интегрировать его в свой проект веб-разработки, где я настроил в своей базе данных следующее:

CREATE TABLE prototype_1 (id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id), name varchar(30));

INSERT INTO prototype_1 (name) VALUES ('A');
INSERT INTO prototype_1 (name) VALUES ('B');
INSERT INTO prototype_1 (name) VALUES ('C');

Достаточно просто!Теперь я попытался использовать «LIMIT», но получаю следующую ошибку:

«ОШИБКА 1235 (42000): эта версия MySQL еще не поддерживает подзапрос« LIMIT & IN / ALL / ANY / SOME »"

Теперь я понимаю, что вы не можете использовать LIMIT в подзапросах, однако разве нет какого-то обходного пути?

Я могу выбрать n-ую строку и красиво отобразить ее следующим образом:

SELECT * FROM prototype_1 LIMIT 1,1;

Таким образом, возвращая 'B', но почему я не могу удалить!?

Ответы [ 2 ]

3 голосов
/ 03 марта 2011

Тебе нужен маленький трюк, подобный этому

delete from prototype_1 where id = (select id from (select id from prototype_1 order by id limit 1,1) as t)
0 голосов
/ 04 октября 2018

Удалите n -ую запись, как это. Убедитесь, что вы упорядочили результат по нужному столбцу, в этом случае столбец id:

DELETE FROM prototype_1 ORDER BY id LIMIT n-1,1
...