【中級者向け】MySQL CASEを使いこなしてデータの分別
  • facebookページ
  • twitterページ
  • 2019.12.16

    【中級者向け】MySQL CASEを使いこなしてデータの分別

    【中級者向け】MySQL CASEを使いこなしてデータの分別

    MySQLのCASEはテーブル上のデータを分別したり、集計したりする際に便利です。SELECTステートメントを使用することができるのであれば、ぜひ覚えておきたい機能ですね。そこで今回の記事では、MySQL CASEの主な機能をご紹介しつつ、実際に使用する方法をハンズオンで体験していきましょう。

    本記事の要点
    • MySQLのCASEはテーブルデータの分別に利用可能
    • MySQLを使ったCASEのハンズオン

    MySQL CASEとは

    MySQLのCASEは、テーブル内のデータを一定の条件に当てはめて整理する機能を持っています。SELECTステートメントだけを使用するとテーブルの全てのデータを登録順に取得することしかできません。しかし、CASEを使用することで条件に当てはまるデータが登録されたレコードへ指定した表示ができるのです。

    MySQL CASEの構文を以下で見てみましょう。

    指定したカラムが「条件式1」に当てはまった場合には結果1の表示、「条件式2」に当てはまった場合には結果2の表示といったように、データを分別することができます。

    「結果」については、「END AS」の後にカラム名を指定した場合、収納されるカラム名となります。こちらは必須でありません。

    また、データが条件式に当てはまらなかった場合に「ELSE」を設定しておきましょう。こちらも必須ではありませんが、データの中に例外がある可能性もあるため、できるだけ設定しておくようにしましょう。

    MySQLのCASEを使用した例

    SELECTステートメントの構文を覚えている方であれば、CASEの加わる構文も難しくはないはずです。実際にMySQLのCASEが使用されている構文を見て、さらに理解を深めましょう。

    以下のようなテーブルがある前提で説明を進めます。

    foodsテーブル

    「type」カラムには「果物 = 1」「肉類 = 2」「その他 = 3」といった法則で数字が入っています。この数字を利用して、CASEを使用してみましょう。

    CASEを含むSELECTステートメント

    出力結果

    CASEの後に書き込んだ条件式がを反映したテーブルが出力されました。このようにレコード内に識別記号・数字などが入っていれば、簡単にレコードを分類別表示することが可能です。

    【関連記事】
    ▶︎MySQL初心者にマスターしてほしいコマンドラインからの使用方法
    ▶︎MySQLのUPDATEの基本とデータベースに格納された値を効率よく変更する方法

    MySQLでCASEハンズオンにトライ

    こちらでは、実際にMySQLというデータベースを使用してCASEを使ってみましょう。

    準備

    まずはMySQLを使用するための準備をしていきます。

    MySQLのインストール・接続

    まだMySQLをインストールしていない場合は、インストールしましょう。

    MySQLのインストールが終了したら、接続します。

    データベースの作成

    次にデータベースをMySQL上に作成し、使用するデータベースを指定しましょう。

    これでMySQLを使用する準備は完了しました。

    ベースとなるテーブルの作成

    次にベースとなるテーブルを作成しましょう。

    上記は生物の名前(name)、種族(type)、寿命(lifespan)をまとめるためのテーブルです。種族は「哺乳類 = 1」「魚類 = 2」「昆虫類 = 3」に分けて登録していきます。次にレコードの登録も行いましょう。

    テーブルの状態

    MySQL CASEで分類表示

    それでは、最初に見た例のような分類表示を体験してみましょう。creaturesテーブルから「type」カラムを「哺乳類 = 1」「魚類 = 2」「昆虫類 = 3」という法則で分別していきます。

    CASEを含むSELECTステートメント

    出力結果

    上記のように種族を表示することによって、一気にテーブルの可読性が上がり、第三者が見た時にも分かりやすくなります。

    MySQL CASEで分類表示2

    次にlifespanカラムを利用して分別をしてみましょう。ただし、今回は条件式の書き方を変更します。条件式の書き方にも注目してみてください。

    CASEを含むSELECTステートメント

    出力結果

    条件式には「<」のような比較演算子を含めることもできます。比較演算子を用いた条件式を使うことで、範囲ごとに分類表示することができるため便利です。

    まとめ

    今回の記事では、MySQL CASEの主な機能をご紹介しつつ、実際に使用する方法をハンズオンで体験していきました。使ってみると非常に簡単なCASEですが、テーブルデータの分類を行う際には非常に便利です。ぜひ、テーブルデータの可読性を上げる際に利用してみましょう。

    【関連記事】
    ▶︎【初心者から一歩先へ】MySQLのWHERE BETWEEN句で範囲検索!
    ▶︎【WHERE DATE句】MySQL 日付・時間処理関数の使い方まとめ10選



    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE