首先选择Mysql然后限制

时间:2010-11-30 14:24:11

标签: 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),无论如何从ONE sql语句中做到这一点?

谢谢

5 个答案:

答案 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