我有一个包含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
答案 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
升序