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 文を使う必要はない

推薦する

URLパラメータに基づくNginx転送

使用シナリオ:ジャンプ パスは、傍受された URL に応じて動的に構成する必要があります。これは、イ...

スクロールラグの問題を解決するためのオーバーフロースクロールの詳細な説明

序文div またはモジュールに overflow: scroll 属性を使用すると、iOS フォンで...

Docker 経由で CentOS コンテナを作成する手順

目次序文コンテナ間の通信を容易にするためのブリッジネットワークを作成するCentOS7イメージを使用...

Firefoxでリンクをクリックしたときに点線の枠線を削除する方法

今日、ブラウザの互換性の問題にいくつか遭遇しました。そのうちの 1 つは奇妙に感じました。Firef...

TypeScript 列挙の基本と例

目次序文TypeScript の列挙型とは何ですか? TypeScriptで列挙型を使用する際に注意...

Vueでドラッグ可能なコンポーネントを実装する方法

この記事では、Vueでドラッグ可能なコンポーネントとドラッグ可能なコンポーネントを実装する方法を参考...

JavaScript の一般的なステートメント ループ、判定、文字列から数値

目次1. スイッチ2. whileループ3. Do/Whileループ3. 文字列を数値に変換する1....

Js における new 演算子の役割の詳細な説明

序文Js は現在最も一般的に使用されているコード操作言語であり、その中でも new 演算子は特によく...

イメージの起動時にdocker runまたはdocker restartが自動的に終了する問題を解決します

コマンドを実行します: docker run --name centos8 -d centos /b...

Linuxルートの初期値を設定する方法の簡単な分析

Ubuntu ではデフォルトで root ログインが許可されていないため、初期の root アカウン...

nginxリバースプロキシによるセッション障害の問題の解決策

同僚から助けを求められました。バックエンド システムへのログインは成功したものの、システムには正常に...

JavaScript を使用して動的な QQ 登録ページを作成する

目次1. はじめに1. 基本レイアウト2. 写真を自動的に切り替える3. コンテンツを追加する4. ...

nginxを使用してドメイン名ベースの仮想ホストを構成する

1. 仮想ホストとは何ですか?仮想ホストは、特殊なテクノロジーを使用して、実行中のサーバーを論理的に...

最新の高品質な英語無料フォント36個を公開

01. 無限フォントのダウンロード02. バンダフォントのダウンロード03. ロールアップフォントの...

MyBatis 動的 SQL の包括的な説明

目次序文動的SQL 1. まずモジュールのディレクトリ構造を見てみましょう2. 物理モデリングと論理...