我想根据“id”值删除特定变量。但下面的代码在附近显示语法错误:OFFSET 1。我使用类似的代码,我使用 SELECT 而不是 DELETE,它工作正常,这里做错了什么?谢谢
DELETE FROM users WHERE name = '$name' ORDER BY id ASC LIMIT 1 OFFSET 1
我想根据“id”值删除特定变量。但下面的代码在附近显示语法错误:OFFSET 1。我使用类似的代码,我使用 SELECT 而不是 DELETE,它工作正常,这里做错了什么?谢谢
DELETE FROM users WHERE name = '$name' ORDER BY id ASC LIMIT 1 OFFSET 1
您不能在 DELETE 的 LIMIT 子句中指定偏移量。
简单使用:
DELETE FROM users WHERE name = '$name' ORDER BY id ASC LIMIT 1;
尝试
DELETE FROM users WHERE name = '$name' ORDER BY id ASC LIMIT 1,1
在DELETE查询中不能有 OFFSET 。
LIMIT
MySQL 语句中不提供偏移量组件,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