事前に言っておく 気まぐれですが、MySQL の order by sorting にどのようなルールが使用されているのか知りたいです。 さて、これ以上前置きせずに、早速本題に入りましょう。 MySql 単一フィールドによる順序付け 次のようにテスト テーブルを作成します。 テーブル `a` を作成します ( `code` varchar(255) デフォルト NULL, `name` varchar(255) デフォルト NULL )ENGINE=InnoDB デフォルト文字セット=utf8; '中一', '我' に値を挿入します。 values('中二', '你') に INSERT します。 values('高一', '我是') に INSERT します。 INSERT を values('高二', '我们') に挿入します。 INSERT into a values('高二', '我的'); テストステートメントは次のとおりです。 -- hex(): 16進バイトコードを取得します。name、hex(name) を名前の降順で選択します。 結果は次のとおりです。
当然ですが、MySQL でのソートはバイトコードに基づいています。最初の単語が同じ場合は、2 番目の単語のバイトコードが比較され、以下同様に続きます。 複数のフィールドによるMySqlの順序付け 比較することによってのみ、アイデアが生まれ、前進することができます。したがって、まず 1 つのフィールドの降順ソート結果を一覧表示し、次に 2 つのフィールドの降順ソート結果を見て、理由を分析します。 -- 名前の降順で並べ替えます。select * from a order by name desc; -- コードで降順で並べ替える select * from a order by code desc; 左側は名前の降順で並べ替えた結果で、右側はコード降順で並べ替えた結果です。
結果は明らかです。単一のフィールドをソートすると、他のフィールドの表示順序も自然にソートされます。 複数のフィールドの並べ替えを見てみましょう。 -- コード、名前の降順で並べ替えます。select * from a order by code, name desc;
結果は次のとおりです。まず、qq_27837327 と MjayTang に感謝します。ここでテストしました。この SQL ソートが無効であるという元のテキストは間違っています。実際、order by code, name desc は order by code asc, name desc と同じです。 テストの結果、コードと名前の desc による select * from a order のソート効果がまだ無効であることが判明しました。 次の文を見てみましょう -- コードと名前の降順で並べ替えます。select * from a order by code desc, name desc; -- この文の効果は次の文と同等です。1と2はそれぞれコードと名前に対応します。 1 desc、2 desc の順序でコード、名前を選択します。
コードと名前の単一フィールドの降順ソートを比較すると、order by code desc、name desc を使用すると、MySQL は最初にコードの降順ソートを行い、次に降順のコードに基づいて名前を使用して降順ソートを行うことがわかります。 さらに、contat 関数を使用して複数のフィールドを連結し、並べ替えることもできます。ただし、フィールドが null にならないようにしてください。 concat SQL ステートメントと結果を見てみましょう。 concat(code,name) desc で順序を指定して * を選択する
明らかに、このテスト例では、order by concat(code, name) descはorder by code desc, name descと同等です。 要約する 以上がこの記事の全内容です。皆様のお役に立てれば幸いです。参照を歓迎します:いくつかの重要なMySQL変数、MySQLマスターライブラリbinlog(master-log)とスレーブライブラリrelay-logの関係の詳細なコード説明、MySQL準備原則の詳細な説明など。質問がある場合は、いつでもメッセージを残してください。誰でもコミュニケーションと議論を歓迎します。 以下もご興味があるかもしれません:
|
<<: Videojs+swiper が Taobao の商品詳細カルーセルを実現
>>: Linux で MySQL のデフォルト エンコーディングを変更する方法
環境に関する声明ホストOS: Cetnos7.9 最小インストールdocker バージョン: 20....
序文JavaScript では、document.querySelector("#demo...
最近、Djangoを学習しているときにデータベースを使用する必要があったため、MySQLで使用するた...
1. CentOS8でのDockerのインストール カール https://download.doc...
履歴コマンドを表示し、指定されたコマンドを実行します owen@owen:~/owen/softwa...
目次1. 数値型1.1 数値型の分類1.1.1 浮動小数点数1.1.2 ビットタイプ1.1.3 時間...
Linux と Unix はマルチユーザー オペレーティング システムであるため、ファイルの権限と所...
はじめに<br />誰もが高速インターネット接続にアクセスできるわけではありません。たと...
1. 全体的なアーキテクチャ図他のデータベースと比較すると、MySQL は、そのアーキテクチャがさま...
はじめに: Windows 10 を再インストールし、同時にファイルを整理しました。しかし、MySQ...
Q1: データベースにはどのようなインデックスがありますか?メリットとデメリットは何ですか? 1. ...
今日、mysql の公式サイトから mysql-5.7.18-winx64.zip をダウンロードし...
目次序文Denoとは何ですか? Node.jsとの比較建築ESモジュール依存関係の管理TypeScr...
序文Vue には、v-if、v-bind、v-on などの豊富な組み込みディレクティブが用意されてい...
参考までに、Javascript を使用して広告を閉じる方法に関するケース スタディを示します。詳細...