加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_宿迁站长网 (https://www.0527zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MYSQL数据库MYSQL使用正则表达式过滤数据

发布时间:2020-12-25 02:42:36 所属栏目:MySql教程 来源:网络整理
导读:《MYSQL数据库MYSQL使用正则表达式过滤数据》要点: 本文介绍了MYSQL数据库MYSQL使用正则表达式过滤数据,希望对您有用。如果有疑问,可以联系我们。 一、正则与LIKE的区别 ?Mysql的正则表达式仅仅使SQL语言的一个子集,可以匹配基本的字符、字符串. 例如:

《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教程

MYSQL数据库MYSQL使用正则表达式过滤数据

MYSQL教程

进行OR匹配
相当于:或操作 “|”MYSQL教程

MYSQL数据库MYSQL使用正则表达式过滤数据

MYSQL教程

匹配几个字符之一
只想匹配特定的字符. 可以通过指定一组用[]括起来的字符来完成.MYSQL教程

MYSQL数据库MYSQL使用正则表达式过滤数据

MYSQL教程

[456]定义了一组字符,他的意思是匹配4或5或6. []是另一种形式的OR语句.[456][4|5|6]的缩写.匹配范围
[1-3] a-z都是合法的范围MYSQL教程

MYSQL数据库MYSQL使用正则表达式过滤数据

MYSQL教程

匹配特殊字符
MYSQL教程

正则表达式语言由特殊含义的特殊字符构成.MYSQL教程

. 在正则表达式中表示匹配任何一个字符MYSQL教程

比如匹配prod_name中包括on字符串的行:
MYSQL教程

MYSQL数据库MYSQL使用正则表达式过滤数据

MYSQL教程

那如何匹配.,[],|,-?MYSQL教程

为了匹配特殊字符,必须用为前导. 比如.表示查找?MYSQL教程

匹配字符类MYSQL教程

MYSQL数据库MYSQL使用正则表达式过滤数据

MYSQL教程

匹配多个实例MYSQL教程

MYSQL数据库MYSQL使用正则表达式过滤数据

MYSQL教程

MYSQL数据库MYSQL使用正则表达式过滤数据

MYSQL教程

再比如 匹配连在一起的4位数字:MYSQL教程

sticks? : s后的?使s可选,因为?匹配它前面紧跟的任何字符的0次或者1次出现.MYSQL教程

MYSQL数据库MYSQL使用正则表达式过滤数据

MYSQL教程

[:digit:]匹配任意数字,因而它为数字的一个集合.{4}确切地要求它前面的字符出现4次.
所以[:digit:]{4}匹配连在一起的任意4位数字.MYSQL教程

MYSQL数据库MYSQL使用正则表达式过滤数据

MYSQL教程

三、定位符
目前为止所有例子都是匹配一个串中任意为止的文本.为了匹配特定为止的文本,需要使用定位符.MYSQL教程

MYSQL数据库MYSQL使用正则表达式过滤数据

MYSQL教程

MYSQL数据库MYSQL使用正则表达式过滤数据

MYSQL教程

也可以在不使用数据库的情况下测试正则表达式的正确性:MYSQL教程

SELECT 来测试正则表达式,REGEXP检查总是返回0或1,MYSQL教程

SELECT? 'HELLO‘? REGEXP '0‘//返回为0MYSQL教程

以上就是本文的全部内容,希望对大家的学习有所帮助.
MYSQL教程

(编辑:云计算网_宿迁站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!