如何从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),无论如何从ONE sql语句中做到这一点?
谢谢
答案 0 :(得分:1)
您可以使用类似
的内容SELECT * FROM TABLE WHERE ID IN (SELECT ID FROM TABLE WHERE X ORDER BY ID LIMIT 2) ORDER BY ID DESC
答案 1 :(得分:0)
如果你想要最新的5或2,我没有得到,我在这里使用2。但这是我刚刚编写的没有测试的东西。
SELECT * FROM table WHERE id IN (SELECT id FROM table ORDER BY id DESC LIMIT 2) ORDER BY id ASC/DESC;
希望这会有所帮助! :)
答案 2 :(得分:0)
好的,我找到了解决方案,谢谢大家的努力和答案,
我做了两列,ID和TSTAMP(用于时间戳),只是按照id asc,tstamp asc / desc ... limit x的顺序,所以它总是按id命令然后按tstamp命令并限制对的。
嵌套查询对引擎来说很痛苦......
感谢
答案 3 :(得分:0)
Select * from TABLE order by id asc , time_stamp desc
答案 4 :(得分:-1)
为什么你不能做像
这样的事情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