我想知道是否有可能扭轉返回的數據排序「順序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