2011-03-03 90 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