选择Mysql逆序

时间:2012-07-03 03:45:27

标签: php mysql

我有一个包含2个基本内容的MySql表: id和值。 要在我的页面上显示,我需要选择,例如,颠倒顺序的最后100行。 所以想象有人在上面放数据:

Id, value
1, 10
2, 9
3, 21
4, 15

我需要选择最后的“3”行(LIMIT + ORDER子句),但不是这样的:4,3,2但是像这样:2,3,4。

我知道如何在代码上执行此操作,但也许在Mysql上有一个简单的解决方案,我不知道。 感谢

我的SQL查询现在就像这样:

SELECT `Data`.`id`, `Data`.`log_id`, `Data`.`value`, `Data`.`created` FROM `control_panel`.`datas` AS `Data` WHERE `Data`.`id` > 1000 AND `Data`.`log_id` = (2) ORDER BY `Data`.`id` DESC LIMIT 100

3 个答案:

答案 0 :(得分:4)

您需要将第一个ORDER BY包装在子选择中,该子选择将返回按降序排列的有限选择,然后您可以按升序在外部查询中对该结果进行排序:

SELECT
    a.*
FROM
    (
        SELECT id, value
        FROM tbl
        ORDER BY id DESC
        LIMIT 3
    ) a
ORDER BY
   a.id

答案 1 :(得分:3)

执行此操作的一种方法是使用子选择。

SELECT *
FROM (SELECT * FROM table_name ORDER BY id DESC LIMIT 3) tmp
ORDER BY id ASC

答案 2 :(得分:0)

简单

 SELECT t.*
 (SELECT * FROM table_name 
      ORDER BY column_name DESC 
      LIMIT 0,3) t
 ORDER BY t.column_name ASC

使用DESC降序,ASC升序