"按顺序排序"顺序相反?

mar*_*arc 14 php mysql sql sql-order-by

欢迎,

我想知道是否可以在"按顺序排序"排序时反转返回的数据,但我希望这些数据的顺序相反.

例如,我得到了包含值的表

ID
1
2
3
4
Run Code Online (Sandbox Code Playgroud)

我做到了

按照ID ASC LIMIT 3的顺序,我得到了

1
2
3
Run Code Online (Sandbox Code Playgroud)

当我通过ID DESC限制3订购时,我得到

4
3
2
Run Code Online (Sandbox Code Playgroud)

我想拥有

3
2
1
Run Code Online (Sandbox Code Playgroud)

所以我想通过ASC订购但反转结果.我一直在使用array_reverse在PHP端做这个,但今天我想问你.Maybye我错了,我只能在Mysql中做到这一点.问候

Mch*_*chl 25

SELECT * 
FROM (
  SELECT ... 
  FROM ... 
  ORDER BY ID ASC 
  LIMIT 3
) AS sq 
ORDER BY ID DESC
Run Code Online (Sandbox Code Playgroud)

把它想象成两个步骤.首先,它执行内部查询:选择3个ID最低的记录.然后在外部查询中按降序对它们进行排序.


Mar*_*ers 5

您可以使用子查询获取前三行,然后在外部查询中反转这些行的顺序:

SELECT *
FROM
(
    SELECT *
    FROM yourtable
    ORDER BY ID
    LIMIT 3
) T1
ORDER BY ID DESC
Run Code Online (Sandbox Code Playgroud)