0

我想根据“id”值删除特定变量。但下面的代码在附近显示语法错误:OFFSET 1。我使用类似的代码,我使用 SELECT 而不是 DELETE,它工作正常,这里做错了什么?谢谢

DELETE  FROM users WHERE name = '$name' ORDER BY id ASC LIMIT 1 OFFSET 1
4

4 回答 4

0

您不能在 DELETE 的 LIMIT 子句中指定偏移量。

简单使用:

DELETE  FROM users WHERE name = '$name' ORDER BY id ASC LIMIT 1;
于 2012-08-01T12:52:36.147 回答
0

尝试

DELETE  FROM users WHERE name = '$name' ORDER BY id ASC LIMIT 1,1
于 2012-08-01T12:52:42.557 回答
0

在DELETE查询中不能有 OFFSET 。

于 2012-08-01T12:53:08.267 回答
0

LIMITMySQL 语句中不提供偏移量组件,DELETE但在语句允许使用SELECT

所以你可以做些什么来解决这个事实,你实际上可以在一个DELETE操作中加入一个子选择,这会给你你想要的结果:

DELETE a FROM users a
INNER JOIN
(
    SELECT id
    FROM users
    WHERE name = '$name'
    ORDER BY id
    LIMIT 1,1
) b ON a.id = b.id
于 2012-08-01T12:54:52.000 回答