MySQL の ORDER BY: EXAMPLE を使用した DESC および ASC クエリ

結果の並べ替え

SELECT コマンドを使用すると、レコードがデータベースに追加されたのと同じ順序で結果が返されました。 これはデフォルトの並べ替え順序です。 このセクションでは、クエリ結果を並べ替える方法を見ていきます。 並べ替えとは、単に指定された方法でクエリ結果を並べ替えることです。 並べ替えは、単一の列または複数の列に対して実行できます。 これは、数値、文字列、および日付データ型に対して実行できます。

MySQL の ORDER BY とは何ですか?

MySQL オーダーバイ SELECT クエリと組み合わせて使用​​すると、データを順序どおりに並べ替えることができます。 MySQL ORDER BY 句は、クエリ結果セットを昇順または降順に並べ替えるのに使用されます。

SELECT statement... [WHERE condition | GROUP BY `field_name(s)` HAVING condition] ORDER BY `field_name(s)` [ASC | DESC];

こちら

  • SELECTステートメント... " 通常の選択クエリです
  • 」| 「「 代替案を表す
  • 「[WHERE 条件 | GROUP BY `field_name(s)` HAVING 条件」 クエリ結果セットをフィルタリングするために使用されるオプションの条件です。
  • 「ご注文」 クエリ結果セットの並べ替えを実行します
  • 「[ASC | 説明]” 結果セットを昇順または降順で並べ替えるのに使用されるキーワードです。 注記 ASC デフォルトとして使用されます。
  • DESC キーワードと ASC キーワードとは何ですか?

    DESC および ASC キーワードASC は昇順の短縮形です DESC および ASC キーワードMySQL DESC は降順の短縮形です
    これは、クエリ結果を上から下のスタイルで並べ替えるために使用されます。 クエリ結果を下から上のスタイルで並べ替えるのに使用されます。
    日付データ型を操作する場合、最も古い日付がリストの先頭に表示されます。 。 日付タイプを操作する場合、最新の日付がリストの一番上に表示されます。
    数値データ型を操作する場合、最小値がリストの一番上に表示されます。 数値データ型を操作する場合、最大値がクエリ結果セットの先頭に表示されます。
    文字列データ型を使用する場合、クエリ結果セットは、文字 A で始まり文字 Z までの順に並べ替えられます。 文字列データ型を使用する場合、クエリ結果セットは、文字 Z で始まり文字 A までの順に並べ替えられます。

    SQL DESC キーワードと ASC キーワードは両方とも、SELECT ステートメントおよび MySQL ORDER BY 句と組み合わせて使用​​されます。


    DESC および ASC 構文

    SQL DESC ソート キーワードには次のようなものがあります。wing 基本的な構文。

    SELECT {fieldName(s) | *} FROM tableName(s) [WHERE condition] ORDER BY fieldname(s) ASC /DESC [LIMIT N]

    こちら

    • SELECT {フィールド名 | *} FROM テーブル名 結果セットの取得元となるフィールドとテーブルを含むステートメントです。
    • [WHERE条件] はオプションですが、指定された条件に従ってデータをフィルタリングするために使用できます。
    • ORDER BY fieldname(s) は必須であり、並べ替えが実行されるフィールドです。 MySQL DESC キーワードは、ソートが降順になるように指定します。
    • [制限] はオプションですが、クエリ結果セットから返される結果の数を制限するために使用できます。

    例:

    それでは実際の例を見てみましょう –

    SELECT * FROM members;

    MySQL ワークベンチで myflixdb に対して上記のスクリプトを実行すると、次の結果が得られます。wing 結果を以下に示します。

membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 rm@tstreet.com
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
5 Leonard Hofstadter Male NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553


マーケティング部門がメンバーを望んでいるとしましょう。tails 生年月日の降順に並べています。これは、誕生日の挨拶をタイムリーに送信するのに役立ちます。以下のようなクエリを実行すると、上記のリストを取得できます。

SELECT * FROM members ORDER BY date_of_birth DESC;

MySQL ワークベンチで myflixdb に対して上記のスクリプトを実行すると、次の結果が得られます。wing 結果を以下に示します。

DESC と ASC の例

同じクエリを昇順で並べたもの

SELECT * FROM メンバー ORDER BY 生年月日 ASC

DESC と ASC の例

注: NULL 値は、値がない (ゼロまたは空の文字列ではない) ことを意味します。 それらがどのようにソートされているかを観察してください。

その他の例

次のことを考えてみましょうwing すべてのメンバーレコードをリストするスクリプトによる SQL ソート。

SELECT * FROM `members`;

上記のスクリプトを実行すると次のようになりますwing 結果を以下に示します。

membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 rm@tstreet.com
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
5 Leonard Hofstadter Male NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553 NULL


性別フィールドを使用してクエリ結果セットを並べ替えるリストを取得したいと仮定すると、以下に示すスクリプトを使用します。

SELECT * FROM `members` ORDER BY `gender`;
membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 rm@tstreet.com
5 Leonard Hofstadter Male NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553 NULL

最初に「女性」メンバーが表示され、続いて「男性」メンバーが表示されます。これは、ASC または MySQL DESC キーワードを指定せずに ORDER BY DESC 句が使用された場合、デフォルトで MySQL がクエリ結果セットを昇順にソートするためです。

次に、次のことを行う例を見てみましょう。 XNUMX つの列を使用して並べ替える; 最初のものは ソート in 昇順 デフォルトでは、XNUMX 番目の列は ソート in 降順。

SELECT * FROM `members` ORDER BY `gender`,`date_of_birth` DESC;

MySQL ワークベンチで myflixdb に対して上記のスクリプトを実行すると、次のようになります。wing 結果。

DESC と ASC の例

性別列はデフォルトで昇順に並べ替えられましたが、生年月日列は明示的に降順に並べ替えられました。

なぜ DESC と ASC を使用するのでしょうか?

フロントデスクからの問い合わせに答えるために、ビデオ ライブラリ メンバーの支払い履歴を印刷したいとします。最近の支払いから前の支払いまで、古い支払いの順に支払いを印刷する方が論理的ではないでしょうか。

SQL の DESC は、このような状況で便利なキーワードです。 支払日を使用してリストを降順に並べ替えるクエリを作成できます。

マーケティング部門が、映画をレンタルするときにメンバーがライブラリでどの映画を利用できるかを判断するために使用できるカテゴリ別の映画リストを取得したいと考えているとします。次のように映画のカテゴリ名とタイトルを昇順に並べ替えるほうが合理的ではないでしょうか。メンバーはリストから情報をすぐに検索できますか?

ASC キーワードは、このような状況で役立ちます。 カテゴリ名と映画タイトルで昇順にソートされた映画リストを取得できます。

まとめ

  • クエリ結果の並べ替えとは、クエリ結果セットから返された行を昇順または降順に並べ替えることです。
  • SQL のキーワード DESC は、クエリ結果セットを降順で並べ替えるのに使用されます。
  • ASC キーワードは、クエリ結果セットを昇順に並べ替えるのに使用されます。
  • DESC と ASC は両方とも、ORDER BY キーワードと組み合わせて機能します。 などの他のキーワードと組み合わせて使用​​することもできます。 WHERE句 そして限界
  • 明示的に何も指定されていない場合の ORDER BY のデフォルトは ASC です。