2
社区成员
13.9 使用正则表达式查询数据
MySQL中匹配正则表达式需要使用关键字REGEXP,在REGEXP关键字后面跟上正则表达式的规则即可。因此,当需要使用正则表达式查询数据时,只需要在WHERE条件中使用REGEXP关键字匹配相应的正则表达式即可。
语法规则如下:
SELECT column_name1 [, column_name2, … , column_namen]
FROM table_name
WHERE column REGEXP expr
·column_name1 [,column_name2,…,column_namen]:字段名列表。
·table_name:表名。
·expr:正则表达式规则。
例如,查询t_goods数据表中名称以“裙”字结尾的所有数据。
mysql> SELECT id, t_category_id, t_category, t_name, t_price
-> FROM t_goods
-> WHERE t_name REGEXP '裙$';
+----+---------------+-----------------+-------------+---------+
| id | t_category_id | t_category | t_name | t_price |
+----+---------------+-----------------+-------------+---------+
| 2 | 1 | 女装/女士精品 | 连衣裙 | 79.90 |
| 5 | 1 | 女装/女士精品 | 百褶裙 | 29.90 |
+----+---------------+-----------------+-------------+---------+
2 rows in set (0.13 sec)
结果显示,存在两条符合条件的数据记录。
查询t_goods数据表中名称以“牛”开头的数据记录。
mysql> SELECT id, t_category_id, t_category, t_name, t_price
-> FROM t_goods
-> WHERE t_name REGEXP '^牛';
+----+---------------+-----------------+-------------+---------+
| id | t_category_id | t_category | t_name | t_price |
+----+---------------+-----------------+-------------+---------+
| 4 | 1 | 女装/女士精品 | 牛仔裤 | 89.90 |
+----+---------------+-----------------+-------------+---------+
1 row in set (0.00 sec)
结果显示,只存在一条符合条件的数据记录。
注意:在MySQL中使用正则表达式匹配某种条件时,只需要在WHERE条件语句中使用REGEXP关键字指定需要匹配的正则表达式规则即可。有关正则表达式的知识,读者可以参考相关的学习资料,笔者不再赘述。