引き続き where 句の書き方を学習していきましょう。ここでは like 演算子による条件の指定方法を取り上げます。
like 演算子によって、カラムに対して値を文字列パターンで比較できます。ここでいう文字列パターンとはたとえば「先頭がAで始まる文字列」や「Aが含まれる文字列」といったものです。
where 列名 like データ
like 演算子に指定するデータには次の特殊な記号を使って文字列パターンを指定します。
| 記号 | 意味 |
|---|---|
| % | 任意の文字列にマッチする |
| _ | 任意の1文字にマッチする |
like演算子で利用するこのような記号はワイルドカードとも呼ばれます。
たとえば Aで始まる文字列 を検索条件とする場合は以下のように記述します。
where 列名 like `A%`
また 先頭から2文字目がAである文字列 を検索条件とする場合は以下のように記述します。
where 列名 like `_A%`
Aが含まれる文字列 を検索条件とする場合は以下のように記述します。
where 列名 like `%A%`
% 記号によるパターンマッチング
次のSQLは courses テーブルから title 列の値が PHP で始まるレコードを検索します。

MariaDB [eldb]> select * from courses
-> where title like 'PHP%';
+----+--------------+---------------+-------------+
| id | title | learning_time | category_id |
+----+--------------+---------------+-------------+
| 1 | PHP Basic | 30 | 1 |
| 2 | PHP Database | 50 | 1 |
+----+--------------+---------------+-------------+
2 rows in set (0.00 sec)
MariaDB [eldb]>
_ 記号によるパターンマッチング
次のSQLは courses テーブルから title 列の値の先頭から5文字目が D であるレコードを検索します。

MariaDB [eldb]> select * from courses
-> where title like '____D%';
+----+--------------+---------------+-------------+
| id | title | learning_time | category_id |
+----+--------------+---------------+-------------+
| 2 | PHP Database | 50 | 1 |
| 4 | Web Design | 50 | 2 |
+----+--------------+---------------+-------------+
2 rows in set (0.00 sec)
MariaDB [eldb]>
title列の5文字目がDのレコードを検索しています。