ようこそ、
返されたデータを「order by desc」のソートで逆にすることは可能ですか?しかし、そのデータを逆の順序で欲しいのですが。
たとえば、値を持つテーブルを取得しました
ID
1
2
3
4
そして私はします
注文ID ASC LIMIT 3取得
1
2
3
IDで注文すると、DESC制限3が発生します
4
3
2
私はを頂きたい
3
2
1
だから私はASCで注文したいのですが、結果を逆にします。私は常にPHP側でarray_reverseを使用してこれを行っていましたが、今日私はあなたに尋ねたいと思います。
SELECT *
FROM (
SELECT ...
FROM ...
ORDER BY ID ASC
LIMIT 3
) AS sq
ORDER BY ID DESC
2つのステップで作業していると考えてください。最初に内部クエリを実行します。IDが最も低い3つのレコードを選択します。次に、外部クエリでそれらを降順に並べ替えます。
サブクエリを使用して最初の3行をフェッチしてから、外部クエリでこれらの行の順序を逆にすることができます。
SELECT *
FROM
(
SELECT *
FROM yourtable
ORDER BY ID
LIMIT 3
) T1
ORDER BY ID DESC
いいえ、あなたは間違っていません。実用的なデータ量に違いはありません。 Array_reverseは大丈夫です。
それはあなたがあまり心配しなければならないことではありません。読みやすさや他の主観的な理由で、好きなものを使ってください
あなたはサブクエリでこれを行うことができます:
SELECT * FROM
(SELECT * FROM myTable ORDER BY idMyTable LIMIT 0, 3) AS r
ORDER BY r.idMyTable DESC
リソース:
外側のSELECT
を使用して、順序を逆にすることができます。
SELECT *
FROM (
SELECT …
ORDER BY id ASC
LIMIT 3
) sub
ORDER BY id DESC