mysql 正则表达式

前面我们学习了正则表达式其实我们在mysql中也可以使用正则语句来查询数据。

select * from studentinfo where student_name like '王';

select * from studentinfo where student_name regexp '王';

LIKE匹配整个列。如果被匹配的文本在列值 中出现,LIKE将不会找到它,相应的行也不被返回(除非使用通配符)。而REGEXP在列值内进行匹配,如果被匹配的文本在列值中出现,REGEXP将会找到它,相应的行将被返回。这是一个非常重要的差别。

select * from studentinfo where student_name regexp '^牛';

select * from studentinfo where student_name regexp '.牛$';

select * from studentinfo where student_name regexp '.牛.*$';

select * from studentinfo where student_name regexp '成|王';

select * from studentinfo where student_name regexp '^成|王';

select * from studentinfo where student_name regexp '成|牛';

select * from studentinfo where student_name regexp '.牛.{1,4}';

select * from studentinfo where phonenum regexp '^[1-7]{2,4}';

select * from studentinfo where student_name regexp '.牛( |小)';

转义: 正则表达式语言由具有特定含义的特殊字符构成。我们已经看到.、[]、|和-等,还有其他一些字符。请问,如果你需要匹配这些字符,应该怎么办呢?例如,如果要找出包含.字符的值,怎样搜索?请看下面的例子:

SELECT name,email FROM studentinfo WHERE email REGEXP '.';

SELECT * FROM studentinfo WHERE student_name REGEXP '^李.*.';

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 宝宝今日语录: 鼠标没有亮 ,说:怎么回事?哦,这个关掉了。 换一个(转凳子)这个方向 妈妈穿左脚的鞋(给我穿左鞋...
    afbf1003889c阅读 2,732评论 0 0
  • 亡月,你好。 (看图)
    Goblin生生阅读 1,482评论 0 1