MySQLで特定の文字が2回以上含まれるレコードを取得する方法
MySQLでは、LIKE句とワイルドカード(%)を組み合わせることで、特定の文字が2回以上出現するレコードを簡単に抽出できます。この記事では、実際にテーブルを作成し、文字「e」が2回含まれるレコードを検索する手順を解説します。
1. テーブルの作成
まず、サンプル用のテーブルを作成します。
mysql> create table DemoTable
-> (
-> Words text
-> );
Query OK, 0 rows affected (0.54 sec)
2. レコードの挿入
INSERTコマンドを使って、いくつかのレコードをテーブルに追加します。
mysql> insert into DemoTable values('Ever');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable values('Forever');
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values('Good');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('Never');
Query OK, 1 row affected (0.12 sec)
3. 登録データの確認
SELECT文ですべてのレコードを表示して確認しましょう。
mysql> select *from DemoTable;
実行結果
+---------+ | Words | +---------+ | Ever | | Forever | | Good | | Never | +---------+ 4 rows in set (0.00 sec)
4. 特定の文字が2回含まれるレコードを検索する
特定の文字が2回出現するレコードを取得するには、LIKE '%e%e%'のようにパターンを指定します。これは「文字列の中に『e』が2箇所以上存在する」という条件を意味します。
以下は、文字「e」が2回含まれるレコードを検索するクエリの例です。
mysql> select *from DemoTable where Words LIKE '%e%e%';
実行結果
+---------+ | Words | +---------+ | Ever | | Forever | | Never | +---------+ 3 rows in set (0.00 sec)
ポイント解説
パターン「%e%e%」の意味は次のとおりです。
- 最初の「%」:任意の0文字以上の文字列
- 「e」:1回目の出現
- 2番目の「%」:任意の0文字以上の文字列
- 「e」:2回目の出現
- 最後の「%」:任意の0文字以上の文字列
そのため、「Ever」「Forever」「Never」のように「e」を2つ以上含む単語だけが抽出され、「Good」は除外されます。
なお、大文字小文字を区別せずに検索したい場合は、照合順序(COLLATION)に依存します。デフォルトの設定では大文字小文字が区別されないため、「E」も一致対象になる点に注意してください。
-
MySQLでカンマ区切りの値から特定の数値を含むレコードをすべて選択する方法
MySQLで特定の数値を含むレコードを抽出するには?カンマ区切りで保存された値の中に、特定の数値が含まれているレコードをすべて取得したい場合は、concat() 関数と LIKE 演算子を組み合わせて使用します。基本の構文は以下のとおりです。select *from yourTableName where concat(,, yourColumnName, ,) like %,yourValue,%;この方法のポイント単純に LIKE %4% とすると、「14」や「40」など意図しない数値までマッチしてしまう可能性があります。そこで、列の値の前後を concat() でカンマで囲むことで、「4
-
MySQLのREGEXPで特定の数値で始まる文字列+数値のレコードを取得する方法
REGEXPを使った特定の数値で始まるレコードの取得方法MySQLでは、REGEXP演算子(正規表現)を使用することで、特定の数値で始まる文字列と数値が混在したレコードを簡単に抽出できます。基本的な構文は以下の通りです。Select yourColumnName1,yourColumnName2 from yourTableName where yourColumnName2 REGEXP ^yourStringValue[yourNumericValue];サンプルテーブルの作成まずは動作確認のためのテーブルを作成しましょう。mysql> create table demo45 -&g