[解決済み] mysqlのunionとorder by句の使い方
2022-05-13 20:20:29
質問
mysqlのクエリでunionとorder byを使用したい。 私は私のサイトで検索するための距離に基づいてテーブルから異なる条件に基づいてレコードのさまざまなタイプをフェッチしています。 最初のselectクエリは、正確な場所の検索に関連するデータを返します。 2番目のselectクエリは、検索された場所から5キロメートル以内の距離に関連するデータを返します。 3番目のselectクエリは、検索された場所から5〜15キロメートル以内の距離に関連するデータを返します。
次に、私はすべての結果をマージし、ページングとページ上に表示するためにユニオンを使用しています。適切な見出しの下に '正確な検索結果' , '5キロメートル以内の結果' その他
今、私はIDまたはadd_dateに基づいて結果を並べ替えたいと思います。しかし、私は私のクエリの最後にorder by句を追加したとき(query1 union query 2 union query 3 order by add_date)。それはすべての結果を並べ替えます。しかし、私が欲しいのは、それが各見出しの下でソートすることです。
どのように解決するには?
各セレクトにランクという疑似カラムを追加して、他の基準でソートする前に、まずランクでソートできるようにすることで、これを実現できます。
select *
from (
select 1 as Rank, id, add_date from Table
union all
select 2 as Rank, id, add_date from Table where distance < 5
union all
select 3 as Rank, id, add_date from Table where distance between 5 and 15
) a
order by rank, id, add_date desc
関連
-
[解決済み] MySQLでdatetimeとtimestampのどちらのデータ型を使用すべきですか?
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] LINQで複数の "order by "を使用する
-
[解決済み] UNIONとUNION ALLの違いは何ですか?
-
[解決済み] MySQLのAUTO_INCREMENTをリセットする方法
-
[解決済み] MySQLの複数行を1つのフィールドに連結することはできますか?
-
[解決済み] MySQLでコマンドラインを使用してユーザーアカウントのリストを取得するにはどうすればよいですか?
-
[解決済み] SQLのIN句をパラメータ化する
-
[解決済み] INNER JOIN ON vs WHERE句
-
[解決済み】「INNER JOIN」と「OUTER JOIN」の違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
mysqlにおけるvarcharの日付比較とソートの実装
-
MySQLとOracleの一括挿入SQLの汎用的な記述例
-
MySQLデータ型の詳細
-
MySQLインデックスベースストレステストの実装
-
[解決済み] [GROUP BY句に含まれるか、集約関数で使用される必要があります。
-
[解決済み】マルチパート識別子をバインドできない
-
MySQLの一般的な分割ライブラリおよび分割テーブルスキームの概要
-
MySQL 接続タイムアウト。エラー SQLSTATE[HY000] [2002] 接続がタイムアウトしました 解決済み
-
[解決済み] 1つのSQLクエリで複数のカウントを取得する方法は?
-
[解決済み] なぜ SQLAlchemy の count() は生のクエリよりずっと遅いのでしょうか?