[英]Remove anything above 900 rows in MariaDB
這在Mysql中有效,但似乎MariaDB的語法不同,我正在嘗試刪除返回的前900行(LIMIT 900)以上的所有內容:
DELETE FROM cronschedule NOT IN (SELECT * FROM cronschedule LIMIT 900);
在Maria中嘗試執行此操作會返回以下錯誤:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MariaDB server version for the right syntax to use near
'NOT IN (SELECT * FROM cronschedule LIMIT 900)' at line 1
那么我將如何在Maria做到這一點?
我希望這比使用LEFT JOIN / IS NULL
構造的答案更有效:
DELETE cr.*
FROM cronschedule cr
JOIN
(
SELECT id
FROM cronschedule ii
ORDER BY
id ASC
LIMIT 1 OFFSET 900
) i2
ON cr.id >= i2.id ;
這似乎有效
DELETE cr.*
FROM cronschedule cr
LEFT JOIN
(
SELECT id
FROM cronschedule ii
ORDER BY
id ASC
LIMIT 900
) i2
ON cr.id = i2.id
WHERE i2.id IS NULL;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.