【初心者から一歩先へ】MySQLのWHERE BETWEEN句で範囲検索!
  • facebookページ
  • twitterページ
  • 2019.12.09

    【初心者から一歩先へ】MySQLのWHERE BETWEEN句で範囲検索!

    MySQLのWHERE BETWEEN句を使ったことはあるでしょうか。最初のうちはシンプルなSELECTステートメントで精一杯かもしれませんが、少し余裕が出てきたタイミングでぜひ使用してみることをおすすめします。今回の記事では、MySQL WHERE BETWEEN句の主な機能をご紹介しつつ、実際に使用する方法をハンズオンで体験していきましょう。

    本記事の要点
    • MySQL WHERE BETWEEN句は範囲検索をする際に活躍
    • MySQLを使ったWHERE BETWEEN句のハンズオン

    MySQL WHERE BETWEEN句とは

    MySQLのWHERE BETWEEN句には指定した範囲に該当するレコードを出力する機能があります。指定できるものには文字列数値日付などがあり、範囲検索をする際に便利です。

    実際にMySQL WHERE BETWEEN句の構文を見てみましょう。

    BETWEENの後に「最小値」と「最大値」を指定することで、その範囲に該当するレコードを出力してくれます。

    すでにSELECTステートメントの構文を知っている方であればWHERE BETWEEN句の加わる構文も難しくはないはず。実際にMySQLのWHERE BETWEEN句が使用されている構文を見て、さらに認識を深めましょう。

    以下のようなテーブルがあることを前提とします。

    foodsテーブル

    上記のテーブルからpriceカラムが「100」または「400」までのレコードを出力してみましょう。

    WHERE BETWEEN句を含むSELECTステートメント

    出力結果

    WHERE BETWEEN句の範囲に「100〜400」と指定することで、priceカラムに「100〜400」の値が入っているレコードを出力できました。

    次に文字列を範囲に指定してみましょう。

    WHERE BETWEEN句を含むSELECTステートメント

    出力結果

    「BETWEEN ‘A’ AND ‘C’」と指定することで「頭文字がAからCの直前までの範囲のレコード」を出力することができます。

    ポテパンダの一言メモ

    文字列の範囲指定で分かったように「BETWEEN ‘A’ AND ‘C’」と指定すると、「頭文字Cのレコード」は出力されません。もし「頭文字C」までを含めたい場合には「BETWEEN ‘A’ AND ‘D’」と指定する必要があることを覚えておきましょう。

    【関連作品】
    ▶︎MySQLのlimitのサンプルコード集 offset指定や効率的な件数取得方法は?
    ▶︎SQL having 集約関数の絞り込み whereよりもレスポンスが遅い理由とは?

    MySQLでWHERE BETWEEN句ハンズオンにトライ

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

    準備

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

    MySQLのインストール・接続

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

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

    データベースの作成

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

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

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

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

    テーブルの状態

    MySQL WHERE BETWEEN句を使った簡単な範囲検索

    それでは、最初に見た例のような範囲検索を体験してみましょう。studentsテーブルから「10〜20歳」の範囲に当たるレコードを抽出します。

    WHERE BETWEEN句を含むSELECTステートメント

    出力結果

    BETWEEN以降に「10 AND 20」と指定したことで、最小値10・最大値20の範囲に当たるレコードの抽出ができました。

    ちなみにBETWEENの前に「NOT」をつけることで、指定範囲以外のレコードを出力することも可能です。

    WHERE NOT BETWEEN句を含むSELECTステートメント

    出力結果

    MySQL WHERE BETWEEN句を使った簡単な範囲検索2

    次に日付を指定して範囲検索を行い、結果を出力してみましょう。

    WHERE BETWEEN句を含むSELECTステートメント

    出力結果

    BETWEEN以降に「’2000-01-01′ AND ‘2009-01-01’」と指定したことで、birthdayカラムが「2000年1月1日」から「2009年1月1日」の範囲に当たるレコードの抽出ができました。

    MySQL WHERE BETWEEN句を使った簡単な範囲検索3

    最後に文字列の範囲検索を行い、出力を行ってみましょう。

    WHERE BETWEEN句を含むSELECTステートメント

    出力結果

    BETWEEN以降に「’H’ AND ‘T’」と指定したことで、nameカラムから「頭文字がH〜S(Tの1つ手前のアルファベット)」の範囲に当たるレコードの抽出ができました。

    まとめ

    今回の記事では、MySQL WHERE BETWEEN句の主な機能をご紹介しつつ、実際に使用する方法をハンズオンで体験していきました。使ってみると非常に簡単なWHERE BETWEEN句ですが、範囲検索を行う際には非常に便利です。ぜひ、範囲検索を行う際に利用してみましょう。

    【関連記事】
    ▶︎MySQL Insert サンプルコード集 一文で一括挿入する方法とは?
    ▶︎【使いこなせる?】SQLのEXISTS文の使い方を初心者向けに解説


    ポテパンが提供するサービスについて

    本メディア「ポテパンスタイル」を運営する株式会社ポテパンは、エンジニアキャリア領域で複数サービスを提供しています。

    ポテパンフリーランス

    ポテパンフリーランス

    フリーランスエンジニアの方に高単価案件をご紹介しております。弊社ではフリーランス案件を常時300件ほど保有しており、その中からあなたに適した案件をご案内いたします。また、これから独立してフリーランスになる方の無料個別相談も承っております。フリーランスになった後の案件獲得方法やお金面(税金や保険など)についてお答えいたします!フリーエンジニアになりたい方向けのコンテンツも盛りだくさんです。

    ポテパンキャリア

    ポテパンキャリア

    エンジニア職専門の転職エージェントです。ポテパンキャリアでは、技術のわかるエージェントがあなたの転職をサポートします。エージェント自身がエンジニアなので、あなたと同じ目線で仕事内容や今後のキャリアについて一緒に考えることができます。年収800万円以上のハイスペック転職をご希望の方は「ポテパンプロフェッショナル」もご用意しておりますのでご利用下さいませ。

    ポテパンキャンプ

    ポテパンキャンプ

    ポテパンキャンプでは、RubyにてゼロからオリジナルのECサイトを作り上げてる3ヶ月間の実践型カリキュラムを提供しております。すでに本スクールの卒業生は、エンジニア職として様々な企業様に就職しております。なお、本スクールは受講料25万円と他社スクールに比べ格安となっており、またポテパンからご紹介させていただいた企業へ就職が決まった場合は、全額キャッシュバックいたします。



    株式会社ポテパンは、企業とエンジニアの最適なマッチングを追求しています。気になるサービスがあれば、ぜひ覗いてみてください!

    ポテクラバナー ポテプロバナー

    この記事をシェア

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









    ABOUT US

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

    READ MORE

    ポテパンおすすめ案件