我有一张像这样的桌子
entryid, roomid
1 1
2 55
3 1
4 12
5 1
6 44
7 1
8 3
9 1
现在我想删除 roomid = 1 的所有条目并保留
剩余 roomid = 1 中的最新 3 个(最好只用一个命令)
所以最后entryid:1和3被删除,而entryid 6、7、9继续保留(确保所有其他roomid仍然保留)
编辑:
感谢帮助。下面我添加了我自己的解决方案,供大家感兴趣
我开始了一个新问题如何将其带入一个命令中。你可以在那里帮助我。
DELETE
支持一个ORDER BY
and LIMIT
条款,所以这是可能的。然而,由于DELETE
的参考限制和参数LIMIT
你需要两个查询。
SELECT COUNT(*) AS total FROM table WHERE roomid = 1;
-- run only if count is > 3
DELETE FROM table WHERE roomid = 1 LIMIT total - 3;
请注意,这可能需要中介技术。我已经显示了查询以供参考。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)