我正在尝试删除给定表中的最后 N 行。我尝试运行以下脚本
DELETE FROM SCHEMA ORDER BY PID DESC LIMIT 26000;
但是我收到了这个错误
Message: [SQL0199] Keyword ORDER not expected. Valid tokens: USE SKIP WAIT WITH WHERE. Cause . . . . . : The keyword ORDER was not expected here.
我也试过运行这个脚本
DELETE FROM SCHEMA WHERE PID IN (SELECT PID FROM (SELECT PID FROM SCHEMA ORDER BY PID DESC limit 26000) a );
但是,除了关键字不是“LIMIT”之外,我还是遇到了同样的错误。
我的语法有错误吗?对我如何做到这一点有什么建议吗?
最佳答案
您的错误是 DB2 错误,而不是 MySQL 错误。我建议:
DELETE FROM SCHEMA
WHERE PID IN (SELECT PID
FROM SCHEMA
ORDER BY PID DESC
FETCH FIRST 26000 ROWS ONLY
) ;
我认为这也行:
DELETE FROM SCHEMA
ORDER BY PID
FETCH FIRST 26000 ROWS ONLY;
也许您使用的 DB2 版本不支持 DELETE
中的 ORDER BY
。
关于sql - 删除mysql中的最后n行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50270623/