で注文してください MySQL: DESC & ASC クエリと EXAMPLE
結果の並べ替え
SELECT コマンドを使用すると、レコードがデータベースに追加されたのと同じ順序で結果が返されました。 これはデフォルトの並べ替え順序です。 このセクションでは、クエリ結果を並べ替える方法を見ていきます。 並べ替えとは、単に指定された方法でクエリ結果を並べ替えることです。 並べ替えは、単一の列または複数の列に対して実行できます。 これは、数値、文字列、および日付データ型に対して実行できます。
ORDER BYとは何ですか MySQL?
MySQL ORDER BY 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 デフォルトとして使用されます。
- SELECT {フィールド名 | *} FROM テーブル名 結果セットの取得元となるフィールドとテーブルを含むステートメントです。
- [WHERE条件] はオプションですが、指定された条件に従ってデータをフィルタリングするために使用できます。
- ORDER BY fieldname(s) は必須であり、並べ替えが実行されるフィールドです。の MySQL DESC キーワードは、ソートが降順になるように指定します。
- [制限] はオプションですが、クエリ結果セットから返される結果の数を制限するために使用できます。
DESC キーワードと ASC キーワードとは何ですか?
ASC は昇順の短縮形です | MySQL DESC は降順の短縮形です |
---|---|
これは、クエリ結果を上から下のスタイルで並べ替えるために使用されます。 | クエリ結果を下から上のスタイルで並べ替えるのに使用されます。 |
日付データ型を操作する場合、最も古い日付がリストの先頭に表示されます。 | 。 日付タイプを操作する場合、最新の日付がリストの一番上に表示されます。 |
数値データ型を操作する場合、最小値がリストの一番上に表示されます。 | 数値データ型を操作する場合、最大値がクエリ結果セットの先頭に表示されます。 |
文字列データ型を使用する場合、クエリ結果セットは、文字 A で始まり文字 Z までの順に並べ替えられます。 | 文字列データ型を使用する場合、クエリ結果セットは、文字 Z で始まり文字 A までの順に並べ替えられます。 |
SQL DESC キーワードと ASC キーワードは両方とも、SELECT ステートメントと組み合わせて使用されます。 MySQL ORDER BY 句。
DESC および ASC 構文
SQL DESC ソート キーワードの基本構文は次のとおりです。
SELECT {fieldName(s) | *} FROM tableName(s) [WHERE condition] ORDER BY fieldname(s) ASC /DESC [LIMIT N]
こちら
例:
それでは実際の例を見てみましょう –
SELECT * FROM members;
上記のスクリプトを実行すると、 MySQL myflixdb に対する workbench の結果は、以下に示すとおりです。
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
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 |
マーケティング部門がメンバーの詳細を生年月日の降順で並べたいとします。これにより、誕生日の挨拶をタイムリーに送信するのに役立ちます。次のようなクエリを実行すると、そのリストを取得できます。
SELECT * FROM members ORDER BY date_of_birth DESC;
上記のスクリプトを実行すると、 MySQL myflixdb に対する workbench の結果は、以下に示すとおりです。
同じクエリを昇順で並べたもの
SELECT * FROM メンバー ORDER BY 生年月日 ASC
注: NULL 値は、値がない (ゼロまたは空の文字列ではない) ことを意味します。 それらがどのようにソートされているかを観察してください。
その他の例
すべてのメンバー レコードを一覧表示する次の SQL ソート スクリプトを考えてみましょう。
SELECT * FROM `members`;
上記のスクリプトを実行すると、以下に示すような結果が得られます。
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
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 | |
---|---|---|---|---|---|---|---|
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 |
「女性」メンバーが最初に表示され、その後に「男性」メンバーが表示されています。これは、ORDER BY DESC句がASCまたは MySQL DESC キーワード、デフォルトでは、 MySQL クエリ結果セットを昇順に並べ替えました。
次に、次のことを行う例を見てみましょう。 XNUMX つの列を使用して並べ替える; 最初のものは ソート in 昇順 デフォルトでは、XNUMX 番目の列は ソート in 降順。
SELECT * FROM `members` ORDER BY `gender`,`date_of_birth` DESC;
上記のスクリプトを実行すると、 MySQL myflixdb に対するワークベンチでは次の結果が得られます。
性別列はデフォルトで昇順に並べ替えられましたが、生年月日列は明示的に降順に並べ替えられました。
なぜ DESC と ASC を使用するのでしょうか?
フロントデスクからの問い合わせに答えるために、ビデオ ライブラリ メンバーの支払い履歴を印刷したいとします。最近の支払いから前の支払いまで、古い支払いの順に支払いを印刷する方が論理的ではないでしょうか。
SQL の DESC は、このような状況で便利なキーワードです。 支払日を使用してリストを降順に並べ替えるクエリを作成できます。
マーケティング部門が、映画をレンタルするときにメンバーがライブラリでどの映画を利用できるかを判断するために使用できるカテゴリ別の映画リストを取得したいと考えているとします。次のように映画のカテゴリ名とタイトルを昇順に並べ替えるほうが合理的ではないでしょうか。メンバーはリストから情報をすぐに検索できますか?
ASC キーワードは、このような状況で役立ちます。 カテゴリ名と映画タイトルで昇順にソートされた映画リストを取得できます。
まとめ
- クエリ結果の並べ替えとは、クエリ結果セットから返された行を昇順または降順に並べ替えることです。
- SQL のキーワード DESC は、クエリ結果セットを降順で並べ替えるのに使用されます。
- ASC キーワードは、クエリ結果セットを昇順に並べ替えるのに使用されます。
- DESC と ASC は両方とも、ORDER BY キーワードと組み合わせて機能します。 などの他のキーワードと組み合わせて使用することもできます。 WHERE句 そして限界
- 明示的に何も指定されていない場合の ORDER BY のデフォルトは ASC です。