【MySQL】REGEXP - 正規表現のパターンマッチ

【MySQL】REGEXP - 正規表現のパターンマッチ

MySQLのREGEXPについて解説します。

検証環境

REGEXP

REGEXPは“正規表現のパターンマッチを行う句”です。

※ 正規表現については、次のドキュメントをご覧ください。

基本構文

カラム名 REGEXP パターン

サンプル

mysql> SELECT * FROM items;
+----+-----------+-------+-------+---------+
| id | name      | price | stock | shop_id |
+----+-----------+-------+-------+---------+
|  1 | Apple     |   200 |    10 |       1 |
|  2 | Orange    |   150 |     3 |       1 |
|  3 | Pineapple |  1100 |     3 |       2 |
|  4 | Grapes    |  3500 |     1 |       2 |
+----+-----------+-------+-------+---------+
4 rows in set (0.00 sec)

___ih_hl_start
mysql> SELECT * FROM items WHERE name REGEXP '.*pple$';
___ih_hl_end
+----+-----------+-------+-------+---------+
| id | name      | price | stock | shop_id |
+----+-----------+-------+-------+---------+
|  1 | Apple     |   200 |    10 |       1 |
|  3 | Pineapple |  1100 |     3 |       2 |
+----+-----------+-------+-------+---------+
2 rows in set (0.00 sec)

12行目のname REGEXP '.*pple$'がREGEXP句です。

nameカラムの値のパターンが'.*pple$'にマッチするかを判定し、WHERE句によって条件でレコードを絞り込んでいます。