删除第n行mysql

时间:2011-03-03 16:49:39

标签: mysql sql sql-delete mysql-error-1235

我正在使用MySQL v5.0.45并尝试删除表中的第n行而不管其ID号。我在PHP中设置原型,然后将其集成到我的Web开发项目中,我在我的数据库中设置了以下内容:

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',但是我收到以下错误:

“ERROR 1235(42000):此版本的MySQL尚不支持'LIMIT& IN / ALL / ANY / SOME子查询'”

现在我明白你不能在子查询中使用LIMIT,但是,有没有某种解决方法?

我可以选择第n行并使用以下内容很好地显示它:

SELECT * FROM prototype_1 LIMIT 1,1;

因此返回'B',但为什么我不能删除!?

2 个答案:

答案 0 :(得分:3)

你需要一个像这样的小技巧

delete from prototype_1 where id = (select id from (select id from prototype_1 order by id limit 1,1) as t)

答案 1 :(得分:0)

像这样删除第n条记录。确保按所需的列(在这种情况下为id列)对结果进行排序:

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