MySQLのWHERE句のサンプルSQL リストや区間、ワイルドカードを使った条件指定とは
  • facebookページ
  • twitterページ
  • 2020.01.30

    MySQLのWHERE句のサンプルSQL リストや区間、ワイルドカードを使った条件指定とは

    MySQLの条件指定を行うWHERE句について、サンプルを交えて解説しています。

    以下、サンプルデータベースとしてEmployeesを、MySQLのバージョンは5.7.28を前提としています。

    MySQLのWHEREの構文

    WHERE句は、select文やdelete文などで条件指定する際に使います。

    基本的な構文は以下の通りです。

    複数の条件を指定する場合は、ANDもしくはORを使います。

    ANDは2つの条件が同時に成り立つことを条件にする演算子。

    下記SQLは、employees(社員)テーブルから、emp_no(社員番号)が10020以下で、gender(性別)がF(女性)のデータのみ抽出します。

    ORは、少なくともどちらか一方の条件が成り立つことを条件にする演算子。

    下記SQLは、employees(社員)テーブルから、first_name(姓名の名)がBezalel、またはlast_name(姓名の姓)がSluisのデータを抽出します。

    ANDとORを同時に使うことも可能。ANDとORが混在した場合は、ANDの方が優先順位が高くなります。場合によっては、括弧を使って正しく条件を指定しましょう。

    以下のSQLは、employees(社員)テーブルから、「first_nameがBezalelまたは、last_nameがSluis」かつ、emp_no(社員番号)が11000以下のデータを抽出します。

    演算子を使った条件指定

    ANDやOR以外にも、以下の演算子を使って条件の指定が可能です。

    IN リストに含まれる値を指定する

    INはリストに含まれるかどうかを条件に指定する演算子です。

    以下のSQLは、departments(部署)テーブルから、「dept_no(部署番号)、dept_name(部署名)」の組み合わせが、(「d001,Marketing」、「d004,Production」)のデータを抽出します。

    【関連記事】
    SQL in句のサンプルコード集 複数カラムの指定方法とは?

    BETWEEN 指定した区間の値を指定する

    BETWEENは、指定した2つの値の区間を条件指定する演算子です。

    以下のSQLは、employees(社員)テーブルから、emp_no(社員番号)が20000~20005のデータを抽出します。

    【関連記事】
    SQL betweenで範囲指定するサンプルコード 速度アップにもつながる? 

    LIKE ワイルドカードを使ったあいまいな文字列を指定する

    likeはあいまい指定が可能な演算子です。

    以下のSQLは、employees(社員テーブル)から、first_name(姓名の名)の2文字と3文字目が「or」のデータを抽出します。

    【関連記事】
    MySQL likeのサンプルコード集 複数のパターンマッチングをするには?

    まとめ

    ポテパンダの一言メモ
    • WHERE句で複数条件を指定する場合は、ANDまたはORで接続する。
    • INでリスト内に値を含むかどうかの条件指定が可能。
    • BETWEENで、区間内に値を含むかどうかの条件指定が可能。
    • LIKEでワイルドカードを使ったあいまい指定が可能。


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

    この記事をシェア

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









    ABOUT US

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

    READ MORE