1
ID、NAME、PRICE、およびDATEの各列で構成されるテーブルがあります。MySQL ORDER BY + LIMIT + OFFSETステートメント:ファセットをオフセットし、ORDER BYでソートする方法
テーブルにたくさんのエントリがあるため、ページャスタイルのナビゲーションを作成しようとしています。そのため、SELECTの出力全体を見るのは不快になっていました。
私は、次の要求を書いた:
SELECT id
, name
, price
, date
FROM mytable
ORDER
BY name asc
LIMIT 30 OFFSET _here's_my_offset_depending_on_the_current_position_
これが唯一の例のように正常に動作します。私が価格で並べ替えようとすると、MYSQLは最初にORDER BYでテーブル全体をソートしてからオフセットを作成したように見えます。
この動作を変更するにはどうすればいいですか。つまり、オフセットを作成し、結果の行を好きなだけ並べ替えるにはどうすればよいですか?あなたはサブクエリを使用する場合
は、サブクエリを使用してください。 –
プレゼンテーションではソートしないでソートする場合はsqlではなくプレゼンテーションでソートします。もちろん、ページャは名前順にページを表示します。結果は使用するのに幾分奇妙になります。 – thst
あなたはこれをやりたい理由を説明できますか?あなたがしたいことをするならば(そしてサブクエリを使用しなければならない)、あなたの検索結果は非常に矛盾したものになります。 –