mysql order by が並べ替えに使用されるルールを知りたいですか? この記事では主に MySQL の Order By 複数フィールドのソート ルールのコード例を紹介します。必要な方はぜひ参考にしてください。
単一フィールドによる MySql の順序
次のようにテスト テーブルを作成します:
CREATE TABLE `a` ( `code` varchar(255) DEFAULT NULL, `name` varchar(255) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT into a values('中一', '我'); INSERT into a values('中二', '你'); INSERT into a values('高一', '我是'); INSERT into a values('高二', '我们'); INSERT into a values('高二', '我的');
テスト ステートメントは次のとおりです:
-- hex(): 获取16进制字节码 select name, hex(name) from a order by name desc
結果は以下の通りです。
名前 | hex(名前) |
私の | E68891E79A84 |
私は | E68891E698AF |
私たち | E68891E4 BBAC |
私 | E68891 |
あなた | E4BDA0 |
明らかに、MySQL でのソートはバイトコードに基づいて行われます。最初の単語が同じ場合は、2 番目の単語のバイトコードを比較します。以下同様です
MySql は複数フィールドで順序付けされます
比較することによってのみアイデアが得られ、比較することによってのみ進歩することができます。 したがって、最初に 1 つのフィールドの降順ソート結果をリストし、次に 2 つのフィールドの降順ソート結果を見て、分析することができます。それは理にかなっています。
-- 按照name进行降序排序 select * from a order by name desc; -- 按照code进行降序排序 select * from a order by code desc;
左が名前順、右がコード順の結果です
コード | 名前 |
高校2年生 | 私の |
高校1年生 | 私 |
2年生 | 私たち |
2人目 | 私 |
2人目 | あなた |
コード | 名前 |
高校2年 | 私たち |
高校2年 | 私 |
高校1年 | 私は |
2年生 | あなた |
2 つ目 | I |
結果は明白です: 単一フィールドがいつソートされ、他のフィールドが出現する順序は自然な順序です。
複数フィールドの並べ替えを見てみましょう
-- 按照code, name进行降序排序 select * from a order by code, name desc;
コード | 名前 |
2番目の | I |
2番目の | あなた |
1年生 | 私は |
2年生です | 私は |
結果は次のとおりです: まず最初に、qq_27837327とMjayTangに感謝します。元の記事にはこう書かれていましたSQLのソートが無効です。実際、order by code, name desc は order by code asc, name desc と同等です |
次の文を見ています
-- 按照code, name进行降序排序 select * from a order by code desc, name desc; -- 该语句的效果等同于下面的语句, 其中1、2分别对应的是code、name select code, name from a order by 1 desc, 2 desc;
code
sophomore | my |
sophomore | us |
高校1年生 | I am |
Second 2 | You |
Second 1 | Me |
コードと名前の単一フィールドの降順を比較すると、コード記述、名前記述による順序を使用すると、次のことがわかります。 , MySQL は、まずコードの降順で並べ替え、次に名前の降順で並べ替え、次に名前の降順で並べ替えます。 |
rreee
コード
2年生 | my |
2年生 | 私たちの |
1年生高校 | 私は |
2回目です | あなた |
2番目 | I |
明らかに、このテスト例から、concat(code, name) descによるorderの効果は、code desc、name descによるorderと同等です | 関連推奨事項: |
以上がMySQL の Order By 複数フィールドの並べ替えルールの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。