我正在使用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',但为什么我不能删除!?
答案 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