2011-03-03 95 views
5

我正在使用MySQL v5.0.45并试图删除表中的第n行,而不考虑其ID号。我设置了PHP中的原型其纳入地方设置我的web开发项目之前,在我的数据库如下:删除第n行mysql

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'); 

够简单了!现在,我试图用 '限价',但我得到了以下错误:

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

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

我可以选择的第n行,并与下面的很好显示它:

SELECT * FROM prototype_1 LIMIT 1,1; 

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

+0

你的意思是什么“不论其ID号”? – 2016-05-18 23:34:50

回答

3

你需要一个小窍门,这样

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

我无法找到很多关于解决这个问题的文档,而且这个工作非常完美!非常感谢! :D – Riyan 2011-03-03 17:02:31

+0

不客气。 :) – 2011-03-03 17:05:11

+0

奇妙的,只是奇妙!我要求的一件事是,你在答案中拼出“prototype_1”是表名,“t”是表中的“第n”行。 – 2017-07-07 16:55:41