引き続き 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
のレコードを検索しています。