sql >> データベース >  >> RDS >> Mysql

OrderBy句を使用したMySQLでの並べ替え

    このチュートリアルは、MySQLを使用した基本的なSQLクエリの学習シリーズの一部です。このチュートリアルでは、キーワードASCまたはDESCを指定してORDER BY句を使用し、MySQLでテーブル行の並べ替えを実行して昇順または降順で並べ替えるSQLクエリについて説明します。

    クエリによる注文

    注文者 句を使用して、テーブルの行を昇順または降順で並べ替えることができます。

    # ORDER BY - Syntax - Default Ascending
    SELECT * FROM `table_name` ORDER BY `column_name`;

    # ORDER BY - Syntax - Ascending
    SELECT * FROM `table_name` ORDER BY `column_name` ASC;

    # ORDER BY - Syntax - Descending
    SELECT * FROM `table_name` ORDER BY `column_name` DESC;

    クエリの説明

    注文者 句を使用して、並べ替えに使用する列を指定することにより、行を並べ替えることができます。 WHEREでORDERBY句を使用して、並べ替えでフィルターまたは検索操作を実行することもできます。

    行を並べ替えるには、ORDERBY句を使用して少なくとも1つの列を指定する必要があります。また、ASCまたはDESCキーワードをそれぞれ使用して、行を昇順または降順で並べ替える順序を指定することもできます。

    複数の並べ替え操作を適用することもできます。この場合、最初に来る並べ替え操作によって返された結果に続いて、後続の並べ替えを適用できます。

    このセクションでは、WHERE句がある場合とない場合のORDERBY句を使用して並べ替えを実行する例を示します。以下のクエリを使用して、ID、名、姓、およびユーザーデータを格納するアクティブな列を持つユーザーテーブルを作成します。

    # Create the User Table
    CREATE TABLE `enterprise`.`user` (
    `user_id` BIGINT NOT NULL,
    `first_name` VARCHAR(45) ,
    `last_name` VARCHAR(45),
    `active` TINYINT(1) NOT NULL DEFAULT 0,
    PRIMARY KEY (`user_id`));

    下記のクエリを使用して、ユーザーテーブルにデータを挿入できます。

    # Insert Rows - All Columns
    INSERT INTO `user` ( `user_id`, `first_name`, `last_name`, `active` ) VALUES
    ( 1, 'John', 'Smith', 1 ),
    ( 2, 'Rick', 'Jones', 1 ),
    ( 3, 'John', 'Ponting', 0 ),
    ( 4, 'Harsh', 'Upadhyay', 1 ),
    ( 5, 'Tajwinder', 'Singh', 0 );

    上記のクエリは、5つの異なるユーザーを表すために、ID、名、姓、およびアクティブな列を持つ5つの行をテーブルに挿入します。

    次に、WHERE句を指定せずにORDER BY句を使用して、ユーザーテーブルの名または姓の列を使用して行を並べ替えます。以下に示すように、MySQLのORDERBY句を使用して実行できます。

    # ORDER BY - Ascending
    SELECT * FROM `user` ORDER BY `first_name`;
    SELECT * FROM `user` ORDER BY `first_name` ASC;

    # Result
    4 Harsh Upadhyay 1
    1 John Smith 1
    3 John Ponting 0
    2 Rick Jones 1
    5 Tajwinder Singh 0


    # ORDER BY - Descending
    SELECT * FROM `user` ORDER BY `first_name` DESC;

    # Result
    5 Tajwinder Singh 0
    2 Rick Jones 1
    1 John Smith 1
    3 John Ponting 0
    4 Harsh Upadhyay 1


    # ORDER BY - Ascending - Multiple
    SELECT * FROM `user` ORDER BY `first_name`, `last_name`;

    # Result
    4 Harsh Upadhyay 1
    3 John Ponting 0
    1 John Smith 1
    2 Rick Jones 1
    5 Tajwinder Singh 0

    上記のクエリは、ORDER BY句を使用して、昇順と降順で並べ替えを実行します。次に、以下に示すように、WHERE句を使用して行を並べ替えます。

    # ORDER BY - Ascending - Filter active users
    SELECT * FROM `user` WHERE `active` = 1 ORDER BY `first_name`;

    # Result
    4 Harsh Upadhyay 1
    1 John Smith 1
    2 Rick Jones 1


    # ORDER BY - Descending - Filter active users
    SELECT * FROM `user` WHERE `active` = 1 ORDER BY `first_name` DESC;

    # Result
    2 Rick Jones 1
    1 John Smith 1
    4 Harsh Upadhyay 1

    これは、WHERE句がある場合とない場合のORDER BY句を使用して、特定の列のテーブルの行を並べ替える方法です。


    1. 単語リストのいずれかに対するPostgreSQLワイルドカードLIKE

    2. T-SQLのテーブル変数にSELECTINTO

    3. SQL ServerでISNUMERIC()を使用すると正を返す非数字

    4. MS SQL Serverで「INSERTINTO」スクリプトを生成するための無料のツールはありますか?