MySQLで文字列照合を実行する方法!LIKE演算子とワイルドカードの使い方
MySQLで文字列のパターンマッチング(部分一致検索)を行うには、LIKE演算子を使用します。LIKE演算子は、指定したパターンに一致するレコードを抽出したい場合に非常に便利な機能です。
本記事では、実際にテーブルを作成しながら、LIKE演算子を使った文字列照合の方法を具体的な例とともに解説します。
1. サンプルテーブルの作成
まず、CREATE TABLE文を使ってテーブルを作成します。
mysql> create table DemoTable
-> (
-> MonthName varchar(100)
-> );
Query OK, 0 rows affected (0.63 sec)ここでは「MonthName」というvarchar型(最大100文字)のカラムを持つ「DemoTable」という名前のテーブルを作成しました。
2. レコードの挿入
次に、INSERT文を使ってテーブルにデータを挿入します。
mysql> insert into DemoTable values('JFMA');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable values('JMA');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable values('JDN');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable values('JFOSA');
Query OK, 1 row affected (0.19 sec)月の頭文字を表す4つのレコード(JFMA、JMA、JDN、JFOSA)を挿入しました。
3. 挿入したデータの確認
SELECT文ですべてのレコードを表示して確認してみましょう。
mysql> select *from DemoTable;
出力結果
+-----------+ | MonthName | +-----------+ | JFMA | | JMA | | JDN | | JFOSA | +-----------+ 4 rows in set (0.00 sec)
4. LIKE演算子による文字列照合
それでは、LIKE演算子を使って文字列照合を実行してみます。以下は、「J」で始まり途中に「M」を含む文字列を検索するクエリです。
mysql> select *from DemoTable WHERE MonthName LIKE '%J%M%';
出力結果
+-----------+ | MonthName | +-----------+ | JFMA | | JMA | +-----------+ 2 rows in set (0.00 sec)
このように、「%J%M%」というパターンに一致する「JFMA」と「JMA」の2件だけが抽出されました。「JDN」と「JFOSA」は条件に合致しないため除外されています。
LIKE演算子で使えるワイルドカードの種類
LIKE演算子では、主に以下の2つのワイルドカードを使用できます。
- %(パーセント):任意の0文字以上の文字列に一致します。例:「%J%」は「J」を含むすべての文字列に一致。
- _(アンダースコア):任意の1文字に一致します。例:「J__A」は「J」で始まり「A」で終わる4文字の文字列に一致。
まとめ
MySQLで文字列照合を行う場合は、WHERE句と組み合わせてLIKE演算子を使用します。ワイルドカード「%」や「_」を組み合わせることで、前方一致・後方一致・部分一致など、柔軟な検索条件を構築できます。大量のデータから特定のパターンを持つレコードを探す際に、ぜひ活用してください。
-
MySQLのSUBSTRING_INDEX()関数で文字列を分割する方法を徹底解説
MySQLで文字列を特定の区切り文字で分割したい場合、SUBSTRING_INDEX() 関数が非常に便利です。この記事では、サンプルテーブルの作成から、氏名を「名」と「姓」に分割するクエリの実行まで、具体的な手順をわかりやすく解説します。 SUBSTRING_INDEX()関数とは SUBSTRING_INDEX(str, delim, count) は、区切り文字 delim の count 回目の出現位置を基準に部分文字列を返す関数です。count が正の値の場合は左側から、負の値の場合は右側から数えます。この特性を組み合わせることで、柔軟に文字列を分割できます。 サンプルテーブルの作成
-
MySQLで文字列から日付を抽出する方法|SUBSTRING_INDEX関数の実践的な使い方
MySQLで文字列から日付を抽出するには?MySQLで文字列の中から日付部分だけを取り出したい場合、SUBSTRING_INDEX() 関数を使うのが便利です。この関数は、指定した区切り文字を基準に文字列を分割し、必要な部分を取得できます。ここでは、実際にテーブルを作成し、文章の中に含まれる日付(例:12/31/2018)を抽出する手順を解説します。1. サンプルテーブルを作成するまず、文字列を格納するためのテーブルを作成します。mysql> create table DemoTable -> ( -> Title text -> );Query OK