mysql では、「SELECT」ステートメントと「ORDER BY」キーワードを使用して昇順クエリを実装できます。構文「SELECT {*|フィールド列名} FROM テーブル名 [WHERE 条件] GROUP BY フィールド」名前 ASC; "。
このチュートリアルの動作環境: 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 サイトの他の関連記事を参照してください。