REGEXP运算符,是正则表达式(regular expression)的缩写,正则表达式在搜索字符串时非常强大,下面是关于它的应用
1.查找名字中包含field的顾客
select *
from customers
where last_name like '%field%'
运用REGEXP运算符,可以这样写,同样可以得出数据
select *
from customers
where last_name regexp 'field'
2.查找姓氏以Brush开头的顾客
^表示查找的字符串必须以什么开头
select *
from customers
where last_name regexp '^brush'
3.查找姓氏以field结尾的顾客
$表示查找的字符串必须以什么结尾
select *
from customers
where last_name regexp 'field$'
3.查找姓氏包含field或者mac的顾客
|符号表示多个搜寻模式
select *
from customers
where last_name regexp 'brush|mac'
4.查找以brush开头,或者包含mac,或者包含rose的顾客
select *
from customers
where last_name regexp '^brush|mac|rose'
5.查找姓氏包含e,且前面要有g或i或m
select *
from customers
where last_name regexp '[gim]e'
6.查找姓氏包含e,且后面要有a但h中的一个字母
select *
from customers
where last_name regexp 'e[a-h]'
总结:
^表示字符串开头
¥表示字符串结尾
|表示逻辑上的or,可以给出多个搜索模式
[]表示任意在括号里列举的单字符
[-]表示任意在括号内范围内的单字符
练习
1.获取名字是Elka或者Ambur的顾客
select *
from customers
where first_name regexp 'elka|ambur'
2.返回姓氏以ey或者on结尾的顾客
select *
from customers
where last_name regexp 'ey$|on$'
3.获取姓氏以my打头,或者包含se的顾客
select *
from customers
where last_name regexp '^my|se'
4.返回顾客,姓氏包含b,然后是r或者u
select *
from customers
where last_name regexp 'b[ru]'
原文地址:https://blog.csdn.net/weixin_51139795
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。