ホームページ  >  記事  >  データベース  >  mysqlで昇順クエリを実装する方法

mysqlで昇順クエリを実装する方法

青灯夜游
青灯夜游オリジナル
2022-02-17 17:08:2512853ブラウズ

mysql では、「SELECT」ステートメントと「ORDER BY」キーワードを使用して昇順クエリを実装できます。構文「SELECT {*|フィールド列名} FROM テーブル名 [WHERE 条件] GROUP BY フィールド」名前 ASC; "。

mysqlで昇順クエリを実装する方法

このチュートリアルの動作環境: Windows7 システム、mysql8 バージョン、Dell G3 コンピューター。

mysql では、「SELECT」ステートメントと「ORDER BY」キーワードを使用して昇順クエリを実装できます。

SELECT ステートメントはデータのクエリに使用され、ORDER BY キーワードは主にクエリ結果のデータを特定の順序で並べ替えるために使用されます。

基本構文:

SELECT {*|字段列名} FROM 表名 [WHERE 条件] GROUP BY 字段名 [ASC|DESC];

構文については以下で説明します。

  • フィールド名: 並べ替える必要があるフィールドの名前を示します。複数のフィールドがある場合は、カンマで区切ります。

  • ASC|DESC: ASC はフィールドが昇順で並べ替えられることを示し、DESC はフィールドが降順で並べ替えられることを示します。 ASC がデフォルト値です。

ORDER BY キーワードを使用する場合は、次の点に注意する必要があります。

  • ORDER BY キーワードの後に​​サブクエリを続けることができます。 (サブクエリについてはチュートリアルで詳しく説明しますので、ここで学習してください)。

  • 並べ替えられたフィールドに null 値がある場合、ORDER BY は null 値を最小値として扱います。

  • ORDER BY ソート用に複数のフィールドを指定すると、MySQL はフィールドの順序に従って左から右にソートします。

単一フィールドの並べ替え

以下では、特定の例を使用して、ORDER BY が単一フィールドを指定する場合を説明します。 MySQL クエリ結果を並べ替える方法。

例 1

次の例では、tb_students_info テーブル内のすべてのレコードをクエリし、高さフィールドを並べ替えます。SQL ステートメントと実行結果は次のとおりです。

mysql> SELECT * FROM tb_students_info ORDER BY height;
+----+--------+---------+------+------+--------+------------+
| id | name   | dept_id | age  | sex  | height | login_date |
+----+--------+---------+------+------+--------+------------+
|  2 | Green  |       3 |   23 | F    |    158 | 2016-10-22 |
|  1 | Dany   |       1 |   25 | F    |    160 | 2015-09-10 |
|  4 | Jane   |       1 |   22 | F    |    162 | 2016-12-20 |
|  7 | Lily   |       6 |   22 | F    |    165 | 2016-02-26 |
| 10 | Tom    |       4 |   23 | M    |    165 | 2016-08-05 |
|  8 | Susan  |       4 |   23 | F    |    170 | 2015-10-01 |
|  6 | John   |       2 |   21 | M    |    172 | 2015-11-11 |
|  5 | Jim    |       1 |   24 | M    |    175 | 2016-01-15 |
|  9 | Thomas |       3 |   22 | M    |    178 | 2016-06-07 |
|  3 | Henry  |       2 |   23 | M    |    185 | 2015-05-31 |
+----+--------+---------+------+------+--------+------------+
10 rows in set (0.08 sec)

結果からわかるように、MySQL はクエリの高さフィールドのデータを値のサイズに応じて昇順に並べ替えます。

複数フィールドのソート

以下では、特定の例を使用して、ORDER BY で複数のフィールドが指定された場合に MySQL がクエリ結果をどのように実行するかを説明します。

例 2

tb_students_info テーブルの名前と身長のフィールドをクエリし、最初に高さで並べ替え、次に名前で並べ替えます。SQL ステートメントと実行結果は次のとおりです。

mysql> SELECT name,height FROM tb_students_info ORDER BY height,name;
+--------+--------+
| name   | height |
+--------+--------+
| Green  |    158 |
| Dany   |    160 |
| Jane   |    162 |
| Lily   |    165 |
| Tom    |    165 |
| Susan  |    170 |
| John   |    172 |
| Jim    |    175 |
| Thomas |    178 |
| Henry  |    185 |
+--------+--------+
10 rows in set (0.09 sec)

注: 複数のフィールドを並べ替える場合、2 番目のフィールドを並べ替える前に、並べ替える最初のフィールドの値が同じである必要があります。最初のフィールドのデータのすべての値が一意である場合、MySQL は 2 番目のフィールドを並べ替えなくなります。

デフォルトでは、クエリ データはアルファベットの昇順 (A ~ Z) で並べ替えられますが、データの並べ替えはこれに限定されません。ORDER BY で DESC を使用して、クエリ結果を降順で並べ替えることもできます順序 (Z ~ A )。

例 3

tb_students_info テーブルをクエリし、最初に高さで降順に並べ替え、次に名前で昇順に並べ替えます。SQL ステートメントと実行結果は次のとおりです。

mysql> SELECT name,height FROM tb_student_info ORDER BY height DESC,name ASC;
+--------+--------+
| name   | height |
+--------+--------+
| Henry  |    185 |
| Thomas |    178 |
| Jim    |    175 |
| John   |    172 |
| Susan  |    170 |
| Lily   |    165 |
| Tom    |    165 |
| Jane   |    162 |
| Dany   |    160 |
| Green  |    158 |
+--------+--------+
10 rows in set (0.00 sec)

DESC キーワードは前の列のみを降順で並べ替えます。ここでは高さフィールドのみが降順で並べ替えられます。したがって、身長は降順でソートされますが、名前は引き続き昇順でソートされます。複数の列を降順で並べ替える場合は、各列に DESC キーワードを指定する必要があります。

[関連する推奨事項: mysql ビデオ チュートリアル ]

以上がmysqlで昇順クエリを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。