MYSQL - 正则表达式示例
^ 以...开头
匹配f_name列以b开头的值的记录
SELECT *
FROM fruits
WHERE f_name
REGEXP '^b';
匹配f_name列以be开头的值的记录
SELECT *
FROM fruits
WHERE f_name
REGEXP '^be';
$ 以...结尾
匹配f_name列以y结尾的值的记录
SELECT *
FROM fruits
WHERE f_name
REGEXP 'y$';
匹配f_name列以rry结尾的值的记录
SELECT *
FROM fruits
WHERE f_name
REGEXP 'rry$';
. 代替任意一个字符
匹配f_name列中a什么g的记录
SELECT *
FROM fruits
WHERE f_name
REGEXP 'a.g';
* + 匹配多个字符
'*' 如下示例:匹配0个a或者任意多个其他字符。
SELECT *
FROM fruits
WHERE f_name REGEXP '^ba*';
+ 如下示例:'a'至少被匹配一次。
SELECT *
FROM fruits
WHERE f_name REGEXP '^ba+';
查询包含字符串xxx的记录
查询f_name列任何含有on字符串的记录;
SELECT *
FROM fruits
WHERE f_name REGEXP 'on';
查询f_name列任何含有on或者ap字符串的记录;
SELECT *
FROM fruits
WHERE f_name REGEXP 'on|ap';
LIKE匹配,和REGEXP 'on|ap'的区别:LIKE匹配查询不到on|ap出现在字符串中间的记录,而REGEXP则只要包含on|ap的字串记录,就符合。
匹配指定字符中任意一个 []
匹配[]中的任意一个字符:
SELECT *
FROM fruits
WHERE f_name
REGEXP '[ot]';
匹配指定字符以外的字符
匹配除了a-e和1-2以外字符的记录;
SELECT *
FROM fruits
WHERE f_id
REGEXP '[^a-e1-2]';
- "字符串{n,}": 表示至少匹配n次前面的字符;
- "字符串{n,m}": 表示至少匹配n次前面的字符,最多匹配m次前面的字符;