Mysql - 用正则表达式过滤数据 ( 1 )
2017-12-08 01:15
323 查看
数据过滤时,一般使用匹配,比较,通配符等就可完成。但是,随着数据过滤条件的复杂性增加,应该学会使用正则表达式来进行搜索筛选数据。正则表达式是用来匹配文本的字符集合。下面将从几个方面来介绍使用正则表达式过滤数据:
1:基本字符匹配.
首先,看一下即将访问数据表列的数据值:
接下来,我们来看例子:
可以看到,WHERE搜索条件下,匹配到包含'数据'的列,那么,REGEXP的作用时什么?先不着急,我们继续深入。看示例:
注意:.是正则表达式中特殊的字符,它表示匹配任意一个字符。所以,'信息系统,操作系统'被匹配。其实REGEXP的作用是:
列内匹配。什么是列内匹配? 好吧,我们不如再来看一个'LIKE与REGEXP差别(重点)'的例子:
从上图可知,LIKE匹配的是整列,REGEXP在列的内部匹配(类似匹配子串的过程),当然REGEXP也能匹配整列。
2:正则表达式的OR匹配.
为了搜索两个串的任意一个,可以使用正则表达式中的OR操作符 - |,它匹配其中之一。例如:
可以看到,不仅可以使用单个|操作符,也可以使用两个级以上的|操作符。继续深入。
3:匹配几个字符之一.
接下来,讲解另一种形式的OR语句,我们先来看一下,即将使用到的表数据:
示例如下:
正则表达式 [123] sub表示:匹配 '1 sub'或'2 sub'或'3 sub',因此返回'1 sub'和'2 sub'。需要提醒的一点是:[123] sub是[1|2|3] sub的缩写两者可以互换使用,但简便起见,还是使用第一种最好。 接下来,我们再来看一个例子,加深理解:
这并不是预期的结果。出现该结果的原因:Mysql认为你要检索的是:'1'或'2'或'3 sub',而不是像刚才那样的搜索情况。所以为了保险起见,还是将 '1|2|3'放在中括号中。
我们还可以使用 '^'来匹配搜索条件之外的任何东西(先不要区考虑^是个什么东东)。例如上面的例子,只在[1|2|3]的1前面添加一个^,结果如下:
4:限定匹配范围.
该知识点较为简单,只给出相应示例,希望读者自己可以多多上机操作试验一下:
小结:Mysql基础的知识点虽然非常简单,但是我们也不能纸上谈兵,应该更多的上机练习,俗话说得好:一回生,二回熟嘛。所以,给自己加油。
1:基本字符匹配.
首先,看一下即将访问数据表列的数据值:
接下来,我们来看例子:
可以看到,WHERE搜索条件下,匹配到包含'数据'的列,那么,REGEXP的作用时什么?先不着急,我们继续深入。看示例:
注意:.是正则表达式中特殊的字符,它表示匹配任意一个字符。所以,'信息系统,操作系统'被匹配。其实REGEXP的作用是:
列内匹配。什么是列内匹配? 好吧,我们不如再来看一个'LIKE与REGEXP差别(重点)'的例子:
从上图可知,LIKE匹配的是整列,REGEXP在列的内部匹配(类似匹配子串的过程),当然REGEXP也能匹配整列。
2:正则表达式的OR匹配.
为了搜索两个串的任意一个,可以使用正则表达式中的OR操作符 - |,它匹配其中之一。例如:
可以看到,不仅可以使用单个|操作符,也可以使用两个级以上的|操作符。继续深入。
3:匹配几个字符之一.
接下来,讲解另一种形式的OR语句,我们先来看一下,即将使用到的表数据:
示例如下:
正则表达式 [123] sub表示:匹配 '1 sub'或'2 sub'或'3 sub',因此返回'1 sub'和'2 sub'。需要提醒的一点是:[123] sub是[1|2|3] sub的缩写两者可以互换使用,但简便起见,还是使用第一种最好。 接下来,我们再来看一个例子,加深理解:
这并不是预期的结果。出现该结果的原因:Mysql认为你要检索的是:'1'或'2'或'3 sub',而不是像刚才那样的搜索情况。所以为了保险起见,还是将 '1|2|3'放在中括号中。
我们还可以使用 '^'来匹配搜索条件之外的任何东西(先不要区考虑^是个什么东东)。例如上面的例子,只在[1|2|3]的1前面添加一个^,结果如下:
4:限定匹配范围.
该知识点较为简单,只给出相应示例,希望读者自己可以多多上机操作试验一下:
小结:Mysql基础的知识点虽然非常简单,但是我们也不能纸上谈兵,应该更多的上机练习,俗话说得好:一回生,二回熟嘛。所以,给自己加油。
相关文章推荐
- Mysql - 用正则表达式过滤数据( 2 )
- MYSQL使用正则表达式过滤数据
- MySQL学习足迹记录07--数据过滤--用正则表达式进行检索
- MySQL通配符过滤数据
- mysql 过滤My97开始结束时间段数据
- Mysql| where子句过滤数据(BETWEEN,IS NULL,=,!=,...)
- Mysql基础——where 过滤数据
- mysql学习 3 过滤数据
- Mysql的select in会自动过滤重复的数据
- MySQL CRASH COURSE命令总结(第六章过滤数据)
- [MYSQL-6] 过滤数据
- mysql的过滤数据
- MySQL 中数据的检索(二:高级数据过滤)
- mysql过滤数据(一)
- MySQL学习足迹记录06--数据过滤--LIKE搭配百分号(%)和下划线(_)通配符
- MySQL 查询语句SELECT和数据条件过滤
- MySQL入门-5:数据过滤
- mysql 重复数据,求和过滤的处理
- mysql过滤数据
- mysql count过滤空值,使其不将空数据计入条数