MySQL WHERE子句内使用正则表达式搜索

正则表达式之初见

下面的语法检索列prod_name包含文本1000的所有行

SELECT * FROM products WHERE prod_name REGEXP '1000';

使用正则表达式语言中一个特殊的字符.,它表示匹配任意一个字符

SELECT * FROM products WHERE prod_name REGEXP '.000';

SELECT * FROM products WHERE prod_name LIKE '1000';
和
SELECT * FROM products WHERE prod_name REGEXP '1000';

执行上面两条语句,会发现第一条语句不返回数据,而第二条语句会返回一条。

LIKE匹配整个列。如果被匹配的文本在列值中未出现,LIKE将不会找到它,相应的行也不被返回(除非使用通配符)。而REGEXP在列值内进行匹配,如果被匹配的文本在列值中出现,REGEXP将会找到它,相应的行将被返回。REGEXP也能匹配整个列(和LIKE相同的作用)使用^和$定位符即可。


MySQL中正则表达式匹配不区分大小写(即,大写和小写都匹配)。为区分小写,可用BINARY关键字。

正则表达式之匹配特殊字符

正则表达式语言由具有特定含义的特殊字符构成。如果需要匹配特殊字符,应该怎么办,例如匹配 . 的值,需要转义, 需要用\为前导。\\表示查找\,\.表示查找.。

多数正则表达式实现使用单个反斜杠转义特殊字符,以便能使用这些字符本身。但MySQL要求两个反斜杠(MySQL自己解释一个,正则表达式库解释另一个)。

正则表达式之定位元字符

^表示文本的开始 $表示文本的结尾 [[:<:]]表示词的开始 [[:>:]]表示词的结尾 例如匹配文本以1开头的文本

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杨建荣的学习笔记

MySQL数据类型(r3笔记第87天)

今天在本地装了一个MySQL的学习环境,简单的熟悉了一下。准备开始好好学习MySQL了。 学习编程语言我都是从数据类型入手。每种编程语言的数据类型都有自己的特点...

301100
来自专栏Rgc

sqlalchemy和flask-sqlalchemy几种分页操作

sqlalchemy中使用query查询,而flask-sqlalchemy中使用basequery查询,他们是子类与父类的关系 假设 page_index=1...

42770
来自专栏calmound

设计模式--单例模式Singleton

单例模式顾名思义整个程序下只有一个实例,例如一个国家只有一个皇帝,一个军队只有一个将军。 单例模式的书写又分为饿汉模式和懒汉模式 饿汉模式    类中代码 pa...

29490
来自专栏猿人谷

Mysql字符串截取总结:left()、right()、substring()、substring_index()

在实际的项目开发中有时会有对数据库某字段截取部分的需求,这种场景有时直接通过数据库操作来实现比通过代码实现要更方便快捷些,mysql有很多字符串函数可以用来处...

35300
来自专栏Python

sqlalchemy和flask-sqlalchemy的几种分页方法

sqlalchemy中使用query查询,而flask-sqlalchemy中使用basequery查询,他们是子类与父类的关系 假设 page_index=1...

599100
来自专栏GreenLeaves

关于null的操作

空值     空值一般用NULL表示     一般表示未知的、不确定的值,也不是空格     一般运算符与其进行运算时,都会为空     空不与任何值相等   ...

22070
来自专栏码云1024

mysql 数据类型

37740
来自专栏峰会SaaS大佬云集

Oracle 数据库入门之----------------------单行函数

SQL> select lower('Hello World') 转小写,upper('Hello World') 转大写,initcap('hello wor...

8200
来自专栏mathor

CodeForces E. XOR and Favorite Number(Div.2)

 一个莫队的基础题,题目要求[L,R]里面有多少对子区间异或值为k,记录一下前缀异或和arr,因为x^x=0,现在我们要求区间[L,R]的异或和值,用arr...

6710
来自专栏GreenLeaves

oracle 中关于null的操作

空值     空值一般用NULL表示     一般表示未知的、不确定的值,也不是空格     一般运算符与其进行运算时,都会为空     空不与任何值相等   ...

19680

扫码关注云+社区

领取腾讯云代金券