MySQLのREGEXPで特定の数値で始まる文字列+数値のレコードを取得する方法
REGEXPを使った特定の数値で始まるレコードの取得方法
MySQLでは、REGEXP演算子(正規表現)を使用することで、特定の数値で始まる文字列と数値が混在したレコードを簡単に抽出できます。基本的な構文は以下の通りです。
Select yourColumnName1,yourColumnName2 from yourTableName where yourColumnName2 REGEXP '^yourStringValue[yourNumericValue]';
サンプルテーブルの作成
まずは動作確認のためのテーブルを作成しましょう。
mysql> create table demo45 -> ( -> id int not null auto_increment primary key, -> value varchar(50) -> ); Query OK, 0 rows affected (1.50 sec)
レコードの挿入
次に、INSERT文を使ってレコードを挿入します。ここでは「John500」「John6500」のように、文字列と数値が組み合わさったデータを登録します。
mysql> insert into demo45(value) values('John500');
Query OK, 1 row affected (0.12 sec)
mysql> insert into demo45(value) values('John1500');
Query OK, 1 row affected (0.11 sec)
mysql> insert into demo45(value) values('John5500');
Query OK, 1 row affected (0.42 sec)
mysql> insert into demo45(value) values('John6500');
Query OK, 1 row affected (0.10 sec)
mysql> insert into demo45(value) values('John8600');
Query OK, 1 row affected (0.19 sec)登録済みレコードの確認
SELECT文を実行して、テーブル内のすべてのレコードを表示してみます。
mysql> select *from demo45;
上記のクエリを実行すると、以下のような出力が得られます。
+----+----------+ | id | value | +----+----------+ | 1 | John500 | | 2 | John1500 | | 3 | John5500 | | 4 | John6500 | | 5 | John8600 | +----+----------+ 5 rows in set (0.00 sec)
特定の数値(5と6)で始まるレコードを抽出するクエリ
それでは本題です。「John」に続く数値が「5」または「6」で始まるレコードのみを取得したい場合は、次のようにクエリを記述します。
ポイントは、パターン「^John」の直後に置かれている文字クラス[56]です。「^」は文字列の先頭を表し、「[56]」は5または6のいずれかにマッチすることを意味します。
mysql> select id,value -> from demo45 -> where value REGEXP '^John[56]';
このクエリを実行すると、以下の出力が得られます。
+----+----------+ | id | value | +----+----------+ | 1 | John500 | | 3 | John5500 | | 4 | John6500 | +----+----------+ 3 rows in set (0.00 sec)
ご覧の通り、「John1500」と「John8600」は除外され、条件に合致した3件のレコードだけが取得されました。このようにREGEXPを活用すれば、柔軟なパターンマッチングによるデータ抽出が可能になります。
-
MySQLのREGEXPでアルファベットを含むレコードのみを抽出する方法|数字のみのレコードを除外
MySQLのREGEXPで文字を含むレコードのみを表示する方法MySQLでは、文字列と数値が混在するカラムから、アルファベットを含むレコードだけを抽出し、数字のみのレコードを除外したいケースがあります。このような場合には、REGEXP演算子を使用すると簡単に実現できます。基本構文REGEXPを使った基本的な構文は以下の通りです。select yourColumnName from yourTableName where yourColumnName REGEXP [a-zA-Z];サンプルテーブルの作成まず、動作確認用のテーブルを作成しましょう。mysql> create table d
-
PHPで英数字混在の文字列から特定の数字で始まる値を抽出する方法(substr()とstrpos()の活用)
PHPでは、substr()とstrpos()を組み合わせることで、文字と数字が混在する文字列から、特定の数字で始まる値を簡単に抽出できます。本記事では、その具体的な手順をサンプルコード付きでわかりやすく解説します。抽出対象の文字列例として、以下のような英数字が混在する文字列を想定します。$value = 1045632245555fghjklm67535454663443gfdjkbvc9890000006777743;この文字列から、次のように「989」で始まる値を取り出したいとします。9890000006777743抽出方法:substr() と strpos() の組み合わせ特定の値を