Mysql先选择然后限制
如何从mysql中选择最新的5行(例如,最新的id),然后将它们排序为asc或desc 问题是我有1,2,3,4,5,6,7,我想选择最新的2,例如(6,7),然后将它们排序为asc或desc(6,7或7,6),但是如果我使用orderby,那么它的限制将是(1,2)或(7,6),是否仍然可以从一个sql语句中进行排序Mysql先选择然后限制,mysql,Mysql,如何从mysql中选择最新的5行(例如,最新的id),然后将它们排序为asc或desc 问题是我有1,2,3,4,5,6,7,我想选择最新的2,例如(6,7),然后将它们排序为asc或desc(6,7或7,6),但是如果我使用orderby,那么它的限制将是(1,2)或(7,6),是否仍然可以从一个sql语句中进行排序 谢谢您可以使用 SELECT * FROM TABLE WHERE ID IN (SELECT ID FROM TABLE WHERE X ORDER BY ID LIMIT 2
谢谢您可以使用
SELECT * FROM TABLE WHERE ID IN (SELECT ID FROM TABLE WHERE X ORDER BY ID LIMIT 2) ORDER BY ID DESC
为什么你不能做这样的事情
SELECT *
FROM TABLE
WHERE (TABLE.primary_key IN (
SELECT TABLE.primary_key
FROM TABLE
ORDER BY TABLE.id ASC
LIMIT 2
))
ORDER BY TABLE.id DESC
我没有得到如果你想要最新的5或2,我这里用2。但是这里有一些我没有经过测试就写的东西
SELECT * FROM table WHERE id IN (SELECT id FROM table ORDER BY id DESC LIMIT 2) ORDER BY id ASC/DESC;
希望这会有所帮助!:) 好的,我找到了解决方案,谢谢大家的努力和回答 我做了两列,ID和TSTAMP(用于时间戳),就像orderbyidasc,TSTAMP asc/desc。。。限制x,所以它总是按id下单,然后按tstamp下单,并限制正确的东西 嵌套查询对引擎来说是一个难题 谢谢
Select * from TABLE order by id asc , time_stamp desc