Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql先选择然后限制_Mysql - Fatal编程技术网

Mysql先选择然后限制

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

如何从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) 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