《MysqL数据库MysqL使用正则表达式过滤数据》要点:
本文介绍了MysqL数据库MysqL使用正则表达式过滤数据,希望对您有用。如果有疑问,可以联系我们。
一、正则与liKE的区别
MysqL的正则表达式仅仅使sql语言的一个子集,可以匹配基本的字符、字符串.
例如:select * from wp_posts where post_name REGEXP'hello',可以检索出列post_name中所有包含hello的行
MysqL教程
REGEXP'.og' .是正则表达式中里一个特殊的字符.它表示匹配一个字符,因此,dog,hog,mog等等都能匹配.
MysqL教程
注意:
MysqL教程
关于liKE和REGEXP的区别:liKE匹配整个列.如果被匹配的文本仅在列值中出现,liKE并不会找到它,相应的行也不会返回(当然,使用通配符除外).而REGEXP在列值内进行匹配,如果被匹配的匹配的文本在列值中出现,REGEXP将会找到它,相应的行将被返回,这时一个非常重要的差别(当然,如果适应定位符号^和$,可以实现REGEXP匹配整个列而不是列的子集).
MysqL教程
关于大小写的区分:MysqL中正则表达式匹配(从版本3.23.4后)不区分大小写.如果要区分大小写,应该使用BINARY关键字,如where post_name REGEXP BINARY 'Hello.000'
MysqL教程
二、基本字符匹配
检索列prod_name 包含文本1000的所有行:MysqL教程
进行OR匹配
相当于:或 *** 作 “|”MysqL教程
匹配几个字符之一
只想匹配特定的字符. 可以通过指定一组用[
和]
括起来的字符来完成.MysqL教程
[456]
定义了一组字符,他的意思是匹配4或5或6. []
是另一种形式的OR语句.[456]
是[4|5|6]
的缩写.匹配范围[1-3]
a-z
都是合法的范围MysqL教程
匹配特殊字符
MysqL教程
正则表达式语言由特殊含义的特殊字符构成.MysqL教程
.
在正则表达式中表示匹配任何一个字符MysqL教程
比如匹配prod_name中包括on
字符串的行:
MysqL教程
那如何匹配.
,[]
,|
,-
?MysqL教程
为了匹配特殊字符,必须用\
为前导. 比如\.
表示查找・
MysqL教程
匹配字符类MysqL教程
MysqL教程匹配多个实例MysqL教程
MysqL教程MysqL教程再比如 匹配连在一起的4位数字:MysqL教程
sticks?
: s
后的?
使s可选,因为?
匹配它前面紧跟的任何字符的0次或者1次出现.MysqL教程
[:digit:]
匹配任意数字,因而它为数字的一个集合.{4}
确切地要求它前面的字符出现4次.
所以[:digit:]{4}
匹配连在一起的任意4位数字.MysqL教程
三、定位符
目前为止所有例子都是匹配一个串中任意为止的文本.为了匹配特定为止的文本,需要使用定位符.MysqL教程
也可以在不使用数据库的情况下测试正则表达式的正确性:MysqL教程
SELECT 来测试正则表达式,REGEXP检查总是返回0或1,MysqL教程
SELECT 'HELLO‘ REGEXP '0‘//返回为0MysqL教程
以上就是本文的全部内容,希望对大家的学习有所帮助.
MysqL教程
以上是内存溢出为你收集整理的MYSQL数据库MYSQL使用正则表达式过滤数据全部内容,希望文章能够帮你解决MYSQL数据库MYSQL使用正则表达式过滤数据所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)