查询不是以18888开头的数据
SELECT * FROM t_user u WHERE u.ACCOUNT NOT REGEXP '^18888';
查询是以18888开头的数据
SELECT * FROM t_user u WHERE u.ACCOUNT REGEXP '^18888';
SELECT 'xxxyyy' regexp '^xx';
查询账号中包含888的数据
SELECT * FROM t_user u WHERE u.ACCOUNT REGEXP '888';
查询账号中包括18888,28888的数据
SELECT * FROM t_user u WHERE u.ACCOUNT REGEXP '.8888';
查询账号中包括8888或者3333的数据
SELECT * FROM t_user u WHERE u.ACCOUNT REGEXP '8888|3333';
查询13333,23333,33333(匹配几个字符之一)
SELECT * FROM t_user u WHERE u.ACCOUNT REGEXP '[123]3333';
匹配范围[]
SELECT * FROM t_user u WHERE u.ACCOUNT REGEXP '[1-9]3333';
匹配特殊字符\\ 匹配特殊字符比如.,、, ,|,[],、-等特殊字符。需要在特殊符号前面加两个斜线:\\。
SELECT * FROM t_user u WHERE u.ACCOUNT REGEXP '\\.';
匹配字符类
[:alnum: ] 任意字母和数字(如[a-zA-Z0-9])
[:alpha:] 任意字符(如[a-zA-Z])
[:digit:] 任意数字(如[0-9])
[:lower:] 小写字母(如[a-z])
[:upper:] 大写字母(如[A-Z])
[:space:] 包括空格在内的任意空白字符
SELECT * FROM t_user u WHERE u.ACCOUNT REGEXP '[[:digit:]]{12}';
SELECT * FROM t_user u WHERE u.ACCOUNT REGEXP '[[:digit:]]';
匹配多个实例
* 匹配 0个或多个前面的字符
+ 匹配1个或多个前面的字符
?匹配0个或1个前面的字符
{n} 匹配n个前面的字符
{n,}匹配n个及以上前面的字符
{n,m} 匹配n个到m个前面的字符
^匹配开头
$匹配结尾