我正在尝试从表中删除行,但出现错误。
DELETE FROM `chat_messages` ORDER BY `timestamp` DESC LIMIT 20, 50;
我在50时收到此错误:
您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在第1行的“ 50”附近使用
不知道怎么了
您不能在DELETE
的LIMIT
子句中指定偏移量。
因此,唯一的方法是将查询重写为以下形式:
DELETE FROM `chat_messages` WHERE id IN (select id from (select id
FROM `chat_messages`
ORDER BY `timestamp` DESC
LIMIT 20, 50) x)
假设您有主键id
列
UPD :您需要实现双重嵌套来欺骗mysql,因为它不允许从当前修改的表中进行选择(感谢Martin Smith)
在 MySQL 中,可以使用 REVOKE 语句删除某个用户的某些权限(此用户不会被删除),在一定程度上可以保证系统的安全性。例如,如果数据库管理员觉得某个用户不应该拥有 DELETE 权限,那么就可以删除 DELETE 权限。 使用 REVOKE 语句删除权限的语法格式有两种形式,如下所示: 1)第一种 删除用户某些特定的权限,语法格式如下: REVOKE priv_type [(column_
从for, foreach, if..elseif...else, try...catch...finally, while...do, do...while中快速提取或删除代码 提取或删除代码的时候,被绿色选中的是要提取的内容,被红色选中的是要被删除的内容. 操作步骤: 菜单栏: Code —> Unwrap\/Remove 快捷键: Mac: command + shift + Delete
我试图通过下面的SQL语句删除一些记录,但得到错误附近使用的正确语法: 有没有人知道我怎么解决错误? 我还尝试了下面的句子,在那里我得到了这个错误)附近使用的正确语法: 上面的句子在表中查找nobody ecxept本身未使用的行,该表将表链接到主表。 为了上述问题,我尝试上面的但我得到以下错误中指定目标表“TA_”以进行更新: 最后尝试了双重包装,但也不起作用,这是错误附近使用的正确语法:
问题内容: 我有一个数据库的MySQL转储。其中包含DEFINER子句, 即,这些DEFINER子句位于我的CREATE VIEW和CREATE PROCEDURE语句中。有没有办法从我的转储文件中删除这些DEFINER子句? 问题答案: 我认为没有办法忽略将s 添加到转储中。但是,有一些方法可以在创建转储文件后将其删除。 在文本编辑器中打开转储文件,并用空字符串“” 替换所有出现的 使用以下命令
我正在运行此查询, 这是您在图片中看到的id为19的唯一删除记录。 id的列类型是整数。