MySQLで正規表現(REGEXP)を使ってアルファベットA〜Cで始まるレコードを検索する方法
MySQLでアルファベット検索を行うには、REGEXP演算子(正規表現)を使用します。ここでは、名前が「A」「B」「C」のいずれかで始まるレコードを抽出する方法を解説します。
REGEXPによるアルファベット検索の基本構文
特定の文字で始まるレコードを検索するには、以下のように「^」(キャレット)と文字クラス [ABC] を組み合わせます。
select * from テーブル名 where カラム名 REGEXP '^[ABC]';
「^[ABC]」は「A、B、Cのいずれかの文字で始まる」という意味になります。大文字小文字を区別せずに検索したい場合は、照合順序(collation)によって自動的に両方がマッチします。
サンプルテーブルの作成
まず、検証用のテーブルを作成しましょう。
mysql> create table DemoTable
(
Name varchar(100)
);
Query OK, 0 rows affected (0.69 sec)テストデータの挿入
INSERT文を使って、いくつかのレコードを登録します。
mysql> insert into DemoTable values('Chris');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable values('David');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('Mike');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('Bob');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('Mike');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values('Adam');
Query OK, 1 row affected (0.14 sec)登録データの確認
SELECT文ですべてのレコードを表示してみましょう。
mysql> select *from DemoTable;
実行結果は以下のとおりです。
+-------+ | Name | +-------+ | Chris | | David | | Mike | | Bob | | Mike | | Adam | +-------+ 6 rows in set (0.00 sec)
REGEXPを使ったアルファベット検索の実行
それでは、「A」「B」「C」で始まる名前だけを抽出するクエリを実行します。
mysql> select *from DemoTable where Name REGEXP '^[ABC]';
実行結果は以下のとおりです。「Chris」「Bob」「Adam」の3件のみが取得できています。
+-------+ | Name | +-------+ | Chris | | Bob | | Adam | +-------+ 3 rows in set (0.17 sec)
まとめ
このように、REGEXPと「^[ABC]」のようなパターンを組み合わせることで、特定のアルファベットで始まるレコードを簡単に絞り込むことができます。範囲指定を使えば「^[A-M]」のようにA〜Mで始まるレコードの検索も可能なので、用途に応じてパターンを工夫してみてください。LIKE句でも同様の検索はできますが、複雑な条件を扱う場合は正規表現の方が柔軟に対応できます。
-
JavaでMySQLのSELECTクエリにPreparedStatement(プリペアドステートメント)を使う方法
executeQuery()メソッドの基本的な使い方JavaからMySQLに対してSELECTクエリを実行する場合は、PreparedStatementオブジェクトのexecuteQuery()メソッドを使用します。基本構文は以下の通りです。yourPreparedStatementObject = yourConnectionObject.prepareStatement(yourQueryName);yourResultSetObject = yourPreparedStatementObject.executeQuery();それでは、実際にサンプルデータベース「sample」を使って手
-
MySQLでカラム内の値を検索するには?REGEXP_INSTR関数の使い方
MySQLでカラム内の値を検索する方法MySQLでは、REGEXP_INSTR()関数を使うことで、指定したカラムに特定の文字列が含まれているかどうかを正規表現ベースで判定できます。マッチした場合は「1」、マッチしなかった場合は「0」を返すため、WHERE句と組み合わせることで柔軟な部分一致検索が可能になります。基本構文構文は以下の通りです。select *from yourTableName where REGEXP_INSTR(yourColumnName,yourSearchValue);サンプルテーブルの作成上記の構文を理解するために、まずテーブルを作成しましょう。mysql>