删除MYSQL表中除顶部/底部50行以外的所有行

删除MYSQL表中除顶部/底部50行以外的所有行,mysql,Mysql,我有一个表,其中有一些条目,我想在这个表中只保留50条按message_id排序的消息,并删除其余条目 请帮我解答这个问题 提前谢谢 试试这个,我已经使用了ORDER BY message_id DESC按需更改它,它将删除除所选的50个条目之外的所有条目,我已为查询添加了别名,因为您无法使用同一个表进行选择和删除操作 DELETE FROM `chat_history` WHERE id NOT IN ( SELECT t.id FROM (SELECT id FROM chat_histo

我有一个表,其中有一些条目,我想在这个表中只保留50条按message_id排序的消息,并删除其余条目

请帮我解答这个问题

提前谢谢

试试这个,我已经使用了ORDER BY message_id DESC按需更改它,它将删除除所选的50个条目之外的所有条目,我已为查询添加了别名,因为您无法使用同一个表进行选择和删除操作

DELETE FROM `chat_history` WHERE id NOT IN ( SELECT t.id FROM 
(SELECT id FROM chat_history ORDER BY message_id DESC LIMIT 50 ) t)
例如


从聊天室历史记录中删除,其中MESSAGE_ID