MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLのBETWEEN演算子で異なる値の間にあるレコードを取得する方法

MySQLのBETWEENで異なる値の間にある値を取得する

MySQLではBETWEEN演算子を使用することで、特定の2つの値の間に存在するレコードを簡単に取得できます。ここでは、従業員コード(文字列型)を格納したテーブルを例に、具体的な手順を解説します。

1. サンプルテーブルの作成

まず、以下のCREATE TABLE文でテーブルを作成しましょう。

mysql> create table DemoTable1473
    -> (
    -> EmployeeCode varchar(20)
    -> );
Query OK, 0 rows affected (0.47 sec)

2. レコードの挿入

続いて、INSERT文を使ってテーブルにサンプルデータを挿入します。

mysql> insert into DemoTable1473 values('EMP_120');
Query OK, 1 row affected (0.25 sec)
mysql> insert into DemoTable1473 values('EMP_125');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1473 values('EMP_30');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1473 values('EMP_130');
Query OK, 1 row affected (0.10 sec)

3. 登録済みレコードの確認

SELECT文を実行して、テーブル内のすべてのレコードを表示してみましょう。

mysql> select * from DemoTable1473;

実行結果は以下のとおりです。

+--------------+
| EmployeeCode |
+--------------+
| EMP_120      |
| EMP_125      |
| EMP_30       |
| EMP_130      |
+--------------+
4 rows in set (0.00 sec)

4. BETWEENを使って範囲内のレコードを取得する

ここで、'EMP_124'から'EMP_129'の間に該当するレコードを取得するクエリを見てみましょう。

mysql> select * from DemoTable1473
    -> where EmployeeCode between 'EMP_124' and 'EMP_129';

このクエリを実行すると、次のような結果が得られます。

+--------------+
| EmployeeCode |
+--------------+
| EMP_125      |
+--------------+
1 row in set (0.00 sec)

結果のポイント

BETWEENは境界値を含む範囲検索を行います。今回の例では文字列同士の比較となるため、辞書順(文字列の並び順)で判定されます。そのため、'EMP_124'〜'EMP_129'の範囲に含まれるのは'EMP_125'だけであり、'EMP_120'や'EMP_130'は範囲外となります。

また、'EMP_30'のように桁数が異なる文字列は、辞書順では「EMP_1xx」より後ろに並ぶため、数値的な大小感覚とは順序が異なる点に注意が必要です。文字列コードに対して範囲検索を行う場合は、必ず桁数を揃える(例:EMP_030のようにゼロ埋めする)ことをおすすめします。

  1. MySQLのLIKE句で特定の列の値(名前)を取得する方法

    MySQLでテーブルから特定の列の値を取得したい場合は、LIKE句を使用します。LIKE句は部分一致検索を行うための句で、ワイルドカードと組み合わせることで、特定のパターンに一致するレコードだけを効率的に抽出できます。この記事では、実際にサンプルテーブルを作成し、LIKE句を使って特定の名前を取得する手順を順番に解説します。1. サンプルテーブルを作成するまず、名前を格納するためのテーブルを作成しましょう。以下のCREATE TABLE文を実行します。mysql> create table DemoTable1809 ( Name varchar(20) ); Q

  2. MySQLで最大の累積値とその出現回数を取得するクエリの書き方

    カラム同士を掛け合わせた値(累積値)の中から最大値と、その出現回数を取得したい場合は、集計関数 COUNT(*) をサブクエリと組み合わせて使用します。あわせて GROUP BY 句も活用します。テーブルの作成まず、以下のコマンドでテーブルを作成しましょう。mysql> create table demo23-> (-> id int not null auto_increment primary key,-> value1 int,-> value2 int-> );Query OK, 0 rows affected (1.65 sec)レコードの挿入続い