このチュートリアルでは MySQL ORDER BY 句とその ASC および DESC オプションでの使用方法について説明します。 この MySQL ステートメントは、簡単な例を使って説明します。 ORDER BY 句の構文
2.ORDER BY W/O ASC または DESC
3.ORDER BY DESC
4.ORDER BY 相対位置
5.ORDER BY DESC
5.ORDER BY 相対位置
6.ORDER BY DESC
6. ORDER BY Two Fields ASC & DESC

それでは、各セクションを一つずつ見ていきましょう。

MySQL ORDER BY Clause

MySQL SELECTコマンドはデフォルトでソートされた結果セットを返しません。 したがって、出力をソートするには、SELECT クエリで ORDER BY 句を追加する必要があります。 ORDER BY 句を使用することにより、以下を実現できます。

  • 単一/複数のフィールドによるレコードのソートを実行する
  • 昇順 (ASC) または降順 (DESC) で個別の列によって行をソートする。

    構文

    # MySQL ORDER BY ClauseSELECT field1, field2,...FROM target_tableORDER BY field1 , field2 ,...

    ORDER BY 句は、デフォルトで昇順で並べ替えを実行します。 ASCという用語は、DESCが降順を意味するのに対し、増加の頭文字をとったものである。 DESC については、SELECT クエリで言及する必要があります。

    MySQL では ORDER BY で式を指定することも可能であることに注意してください。 また、ASC と DESC のオプションは、このステートメントのオプションです。

    練習用のサンプル演習をいくつか紹介します。

    MySQL ORDER BY 句の例

    MySQL SELECT クエリと ORDER BY 句を使用する方法をチェックしましょう。

    asc/desc オプションを使用しない order by の使用

    実演するために、まず Sample という名前のテーブルを作成し、いくつかのテスト データを入力してみましょう。

    SELECT *FROM Sample;

    その出力は次のとおりです。

    さて、「vendor_name」ファイルに対してORDER BY句を実行します。

    SELECT *FROM SampleORDER BY vendor_name;

    以下の出力を示す結果が得られます。

    上記の結果セットから、デフォルトの昇順でソートが行われたと評価することができます。

    SELECT *FROM SampleORDER BY vendor_name DESC;

    ここに降順で並べ替える MySQL ステートメントがあります:

    Sort by field on a relative position

    相対位置のフィールドで並べ替えるために MySQL ORDER BY 句を使用することが可能です。

    SELECTクエリでカラム名を指定すると、最初のフィールドは1の位置にあり、2番目は2の位置にあるというように。 さらに、例を使ってこの事実を検証することができます。

    ここに、フィールドを表示し、相対的な位置でソートするSELECT文があります。

    SELECT # pos_1 pos_2 pos_3 pos_4 sample_id, sample_name, vendor_name, sample_sizeFROM SampleORDER BY 4 DESC;

    以下は、上記のコマンドを実行した後に得られる結果セットです。

    4番目の列に対応する sample_size フィールドで MySQL がソートしていることがわかります。 このような場合、MySQL は最初のフィールドをプライマリとして、後のフィールドをセカンダリとして扱います。 したがって、最初にプライマリをソートし、次にセカンダリをソートします。

    したがって、この例では、2 つの列、ASC として 1 つのフィールド、および DESC として別のフィールドで ORDER BY を実演します。

    ここで、同じベンダー名でサンプルサイズが異なるいくつかの行があります。 そして、ここで vendor_name (主) および sample_size (副) フィールドに基づいてソートします。

    SELECT sample_id, sample_name, vendor_name, sample_sizeFROM SampleORDER BY vendor_name ASC, sample_size DESC;

    この MySQL 文は、次の結果を生成します:

    主フィールドのすべての値が昇順でソートされていることがわかります。 そして、2 番目のフィールドでも (DESC で) ソートが行われたことが出力からわかります。

    さて、ベンダー名のみでソートした場合の結果を調べてみましょう。

    SELECT sample_id, sample_name, vendor_name, sample_sizeFROM SampleORDER BY vendor_name ASC;

    このコマンドは次のようになります。

    上記の結果から、Google と Twitter に属する行はサンプル サイズでソートされていないことがわかります。 しかし、自信をつけるために例題でもっと練習してもよいでしょう。

    また、SQL をゼロから深く学ぶには、ステップバイステップの MySQL チュートリアルを読んでください。

コメントを残す

メールアドレスが公開されることはありません。