我有一个表,其中id是不断增加的。Id
并不总是以相同的值增加,它不是一个auto_increment
,因为一个api,但它永久增加。例如:
| 识别码|其他内容|
| - -|- -|
| 五零一|xxx|
| 500个|年|
| 三六五|qqq|
| 一个人。|一个人。|
现在我只想保留最后的X行,删除id较低的行。我能够找到一个类似的,但不是一个工作的解决方案,为自己这个问题。
我原以为这样做会奏效,但出现了一个错误:
DELETE FROM `games` WHERE `matchId` NOT IN(SELECT `matchId` FROM `games` ORDER BY `matchId` DESC LIMIT X)
1235 -此版本的MySQL尚不支持'LIMIT & IN/ALL/ANY/SOME子查询'
我运行的mysql版本8.0.27上的phpmyadmin 5.1.1的网页界面。
是否有办法保留最新的x行而不触发此错误?
2条答案
按热度按时间xv8emn3q1#
rur96b6h2#
您可以改用CTE: