ホームページ > データベース > mysql チュートリアル > mysqlでクエリとソートを実装する方法

mysqlでクエリとソートを実装する方法

青灯夜游
リリース: 2021-12-03 18:36:34
オリジナル
16829 人が閲覧しました

mysql では、SELECT ステートメントと "ORDER BY" キーワードを使用してクエリ ソート機能を実装できます。構文は "SELECT * FROM データ テーブル名 ORDER BY フィールド名 [ASC|DESC]"; です。 「ASC」を設定すると昇順、「DESC」を設定すると降順にソートできます。

mysqlでクエリとソートを実装する方法

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

mysql では、SELECT ステートメントと "ORDER BY" キーワードを使用して、クエリの並べ替え効果を実現できます。

#SELECT ステートメントはデータをクエリでき、ORDER BY キーワードはクエリ結果のデータを特定の順序で並べ替えることができます

文法:

SELECT * FROM 数据表名 ORDER 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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート