我想知道是否有可能扭转返回的数据排序“顺序desc”但我想要的数据以相反的顺序。
例如,我有表值
ID
1
2
3
4
,我也
订购ID ASC LIMIT 3 我
1
2
3
当我通过ID DESC极限做订单3 我收到
4
3
2
我想有
3
2
1
所以我想通过ASC但翻领结果订购。 我一直在使用array_reverse在PHP端做这件事,但今天我想问你。 Maybye我错了,我只能在Mysql中做到这一点。 问候
我想知道是否有可能扭转返回的数据排序“顺序desc”但我想要的数据以相反的顺序。
例如,我有表值
ID
1
2
3
4
,我也
订购ID ASC LIMIT 3 我
1
2
3
当我通过ID DESC极限做订单3 我收到
4
3
2
我想有
3
2
1
所以我想通过ASC但翻领结果订购。 我一直在使用array_reverse在PHP端做这件事,但今天我想问你。 Maybye我错了,我只能在Mysql中做到这一点。 问候
您可以使用子查询取前三行,然后扭转这些行的顺序在外部查询:
SELECT *
FROM
(
SELECT *
FROM yourtable
ORDER BY ID
LIMIT 3
) T1
ORDER BY ID DESC
你可以使用一个外部SELECT
颠倒顺序:
SELECT *
FROM (
SELECT …
ORDER BY id ASC
LIMIT 3
) sub
ORDER BY id DESC
SELECT *
FROM (
SELECT ...
FROM ...
ORDER BY ID ASC
LIMIT 3
) AS sq
ORDER BY ID DESC
把它看成分两步工作。首先执行内部查询:选择3个ID最低的记录。然后在外部查询中按降序对它们进行排序。
这很好。 – marc 2010-09-05 17:54:58
老兄,你太棒了! – user3284463 2015-11-25 16:36:56
此查询如何工作!您能否请解释或提供此链接 – user3284463 2015-11-25 16:39:10
不,你没有错。任何合理的数据量都没有区别。 Array_reverse是好的。
这不是你必须担心的事情。只要使用任何你喜欢的更多 - 这对可读性或其他主观原因
你可以用一个子查询做到这一点:
SELECT * FROM
(SELECT * FROM myTable ORDER BY idMyTable LIMIT 0, 3) AS r
ORDER BY r.idMyTable DESC
资源:
资源页面未找到:( – user3284463 2015-11-25 16:39:43
可能的[B est的方式来从结果集中使用mysql获取最后4行](http://stackoverflow.com/questions/2980220/best-way-to-fetch-last-4-rows-from-a-result-set-using -mysql) – 2010-09-05 18:08:18