删除第n行mysql

Riy*_*yan 6 mysql sql mysql-error-1235 sql-delete

我正在使用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');
Run Code Online (Sandbox Code Playgroud)

很简单!现在我尝试使用'LIMIT',但是我收到以下错误:

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

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

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

SELECT * FROM prototype_1 LIMIT 1,1;
Run Code Online (Sandbox Code Playgroud)

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

Nic*_*ssu 4

你需要这样的小技巧

delete from prototype_1 where id = (select id from (select id from prototype_1 order by id limit 1,1) as t)
Run Code Online (Sandbox Code Playgroud)

来自文档

LIMIT 子句可用于限制 SELECT 语句返回的行数。LIMIT 接受一个或两个数字参数,它们必须都是非负整数常量

(...)

使用两个参数,第一个参数指定要返回的第一行的偏移量,第二个参数指定要返回的最大行数。初始行的偏移量为 0(不是 1):