MySQLの指定順序ソートクエリについての簡単な説明

MySQLの指定順序ソートクエリについての簡単な説明

最近、空港や駅でフライト情報を表示するものと似た大型スクリーンディスプレイのプロジェクトに取り組んでいますが、表示される内容ははるかに複雑です。データの一部は次のとおりです。

フロントエンドでは主に Vue フレームワークが使用され、バックエンドのデータがフロントエンドに表示される必要があります。

1 つ目: 工場の入口と出口のインジケーターは固定されていません (6 個の場合もあり、将来的には 7 個または 8 個になる可能性もあります)。

2 番目: 「数値」の代わりにスラッシュを使用します。

3つ目:インバウンドインジケータとアウトバウンドインジケータの名前は、上図で指定された名前に準拠する必要があります(バックエンドデータベースから照会された名前は、フロントエンドで指定された名前と異なり、単位に「>1」、「>0.3」などが含まれているため、バックエンドから直接照会することはできません。名前+単位はフロントエンドに配置され、自分で処理する必要があります)。4つ目:バックエンドデータが送信される順序は、フロントエンドで指定された順序である必要があります。いずれにせよ、フロントエンドはデータをループアウトするだけでよく、バックエンドが他のすべてのニーズに対応する必要があります。

2つのテーブルがあります: table_a、table_b

ステップ1: table_a.id=table_b.idsに基づいてテーブルを作成する

SQL文: SELECT * FROM (SELECT * FROM table_a a INNER JOIN table_b b ON a.id=b.ids)A、下線部分を新しいテーブルAとして取得します。

ステップ 2: Xiaobailong と Sha Wujing がデータベースに存在しないことが判明したため、追加する必要があります。

SQL ステートメント:

SELECT * FROM (SELECT * FROM table_a a INNER JOIN table_b b ON a.id=b.ids
ユニオンオール
SELECT 8 id,'白龙马' `name`,'小白' sname,'1000' age ,8 ids, 27 `value`
ユニオンオール
SELECT 9 id,'沙武景' `name`,'閔戰将軍' sname,'2000' age ,9 ids, 289 `value`
)あ

下線部分は、不足しているデータを追加するために使用され、フロントエンドでの固定表示のニーズに使用されることがあります。

ステップ3:唐僧、孫悟空、朱八戒、沙悟浄、蕭百龍、春華、王武、趙流、唐奇の順に並べます。

SQL ステートメント:

SELECT * FROM (SELECT * FROM table_a a INNER JOIN table_b b ON a.id=b.ids
ユニオンオール
SELECT 8 id,'白龙马' `name`,'小白' sname,'1000' age ,8 ids, 27 `value`
ユニオンオール
SELECT 9 id,'沙武景' `name`,'閔戰将軍' sname,'2000' age ,9 ids, 289 `value`)A
    INNER JOIN (SELECT 7 ids、1 `order`)
ユニオンオール
2 つの ID、2 つの `order` を選択
ユニオンオール
4 つの ID、3 つの `order` を選択
ユニオンオール
9 つの ID、4 つの「順序」を選択
ユニオンオール
8 つの ID、5 つの `order` を選択
ユニオンオール
6 つの ID、6 つの `order` を選択
ユニオンオール
1 つの ID、7 つの `order` を選択
ユニオンオール
5 つの ID、8 つの `order` を選択
ユニオンオール
3 つの ID を選択、9`order`) B ON B.ids=A.id
B.orderによる注文

下線付きのステートメントは、テーブル A 全体に 2 つのフィールドを追加し、指定された方法で固定ソートを実現します。フィールドを追加して、他の目的を達成することもできます。

上記は、MySQL 指定順序ソートクエリの紹介の全内容です。まだ質問がある場合は、下のコメントエリアで議論することができます。

以下もご興味があるかもしれません:
  • MySQL の単一テーブル クエリ操作例の詳細な説明 [構文、制約、グループ化、集計、フィルタリング、並べ替えなど]
  • MySQL が UNION を使用して 2 つのクエリを接続できない理由の詳細な説明
  • MySQL クエリのソートとクエリ集計関数の使用法の分析
  • Yii2 は MySQL データベース間の関連クエリソート機能コードを実装します
  • MySQL でクエリ結果をソートし、返される結果の数を制限する方法に関するチュートリアル
  • MySQLクエリ結果を値でソートする簡単なチュートリアル
  • ランダムソート結果を使用したデータベースクエリソートの例 (Oracle/MySQL/MS SQL Server)
  • MySQL クエリの最適化: 結合クエリのソート制限の概要 (結合、順序、制限ステートメント)
  • MySQL クエリの最適化: 結合クエリのソートに関する簡単な説明
  • MySQLクエリのソートとページング関連

<<:  Linux で SpringBoot jar プログラム デプロイメント シェル スクリプトを起動および停止する方法

>>:  JavaScript ではおそらく switch 文を使う必要はない

推薦する

MySQLはOracleシーケンスに似たソリューションを実装しています

MySQLはOracleのようなシーケンスを実装しているOracle は通常、主キー フィールドを処...

ウェブフロントエンドコードを書く際の考慮事項のまとめ

1. HTMLタグの前に次のような文を追加するのが最適です。 <!DOCTYPE HTML P...

Vueルーティングはページステータスを復元する操作メソッドを返します

ルートパラメータ、ルートナビゲーションガード: ページが戻ったときに検索結果を保持する需要シナリオ:...

ユーザーエクスペリエンスの要素またはWebデザインの要素

システムとユーザー環境の設計<br />Apple システムの成功は、そのシステム アー...

Vue は Echarts をインポートして折れ線グラフを実現します

この記事では、VueでEchartsをインポートして線散布図を実現する具体的なコードを参考までに共有...

Javascript 操作メカニズム イベントループ

目次1. 4つのコンセプト1. JavaScriptはシングルスレッドです2. タスクキュー3. 同...

Tomcat8はcronologを使用してCatalina.Outログを分割します

背景tomcat によって生成された catalina.out ログ ファイルが分割されていない場合...

Docker tomcatのメモリサイズを設定する方法

Docker に Tomcat をインストールする場合、大きなファイルをダウンロードするときなど、場...

Reactは無限ループスクロール情報を実装する

この記事では、無限ループスクロールを実現するためのReactの具体的なコードを参考までに紹介します。...

CSS と Bootstrap アイコンを使用して、上下にジャンプするインジケーター矢印のアニメーション効果を作成します。

ページが非常に長い場合は、下にさらにコンテンツがあることをユーザーに知らせるために矢印が必要になるこ...

MySQL 8.0.15 のインストールと設定方法のグラフィックチュートリアル (Win10 Home バージョン 64)

超初心者の私は、MySQL を学び始めたばかりで、インストール プロセス中に多くの問題に遭遇しました...

Vueでフォームデータを取得する方法

目次必要データを取得して送信するテンプレートフィルターフィルターの使用シナリオ要約する必要Vue を...

CSSがページのレンダリングをブロックするかどうかについての簡単な説明

おそらく誰もが js の実行によって DOM ツリーの解析とレンダリングがブロックされることを知って...

JavaScript タイマーの詳細

目次1. 簡単な紹介2. 間隔を設定する2.1 説明2.2 パラメータ2.3 戻り値2.4 使用法3...

Dockerボリュームコンテナ間のデータ共有の実装

ボリュームとは何ですか?ボリュームは英語で容量を意味し、Docker ではデータ ボリューム、つまり...