使用MySQL正则表达式查询

MySQL用WHERE子句对正则表达式提供了初步的支持,允许你指定用正则表达式过滤SELECT检索出的数据。

REGEXP后所跟的东西作为正则表达式处理。

代码

SELECT prod_name
FROM products
WHERE prod_name REGEXP ‘1000‘
ORDER BY prod_name;

------返回------
+------------------------+
|    prod_name    |
+------------------------+
|  JetPack 1000  |
+------------------------+

表示匹配任意一个字符。

代码

SELECT prod_name
FROM products
WHERE prod_name REGEXP ‘.000‘
ORDER BY prod_name;

------------返回-----------

+-------------------------+
|     prod_name    |
+-------------------------+
|   JetPack 1000  |
|   JetPack 2000  |
+-------------------------+

MySQL中的正则表达式匹配不区分大小写。

为区分大小写,可使用BINARY关键字。

如:WHERE prod_name REGEXP BINARY ‘JetPack .000‘

为搜索两个串之一(或者这个串,或者为另一个串),使用 | 。

| 作为OR操作符,表示匹配其中之一。可给出两个以上的OR条件。

代码

SELECT prod_name
FROM products
WHERE prod_name REGEXP ‘1000 | 2000‘
ORDER BY prod_name;

------------返回------------

+----------------------+
|  prod_name   |
+----------------------+
| JetPack 1000 |
| JetPack 2000 |
+----------------------+

[ ] 匹配任何单一字符。

[123]定义一组字符,意思是匹配1或2或3.

[ ]是另外一种形式的OR语句,[123] Ton  就是  [1 | 2 | 3] Ton 的缩写。

^ 否定一个字符集合,将匹配除指定字符外的任何东西。[^123]将匹配除这些字符外的任何东西。

代码

SELECT prod_name
FROM products
WHERE prod_name REGEXP ‘[123] Ton‘
ORDER BY prod_name;

-------------返回------------

+--------------------+
| prod_name   |
+--------------------+
| 1 ton anvil    |
| 2 ton anvil    |
+--------------------+

匹配范围

[0123456789] 或 [0-9] 将匹配数字0到9

[a-z] 匹配任意字母符号

代码

SELECT prod_name
FROM products
WHERE prod_name REGEXP ‘[1-5] Ton‘
ORDER BY prod_name;

----------返回-----------

+-------------------+
|  prod_name |
+-------------------+
|  .5 ton anvil  |
|  1 ton anvil   |
|  2 ton anvil   |
+-------------------+

匹配特殊字符

\\  为前导。即转义.正则表达式内具有特殊意义的所有字符都必须以这种方式转义。

\\-  表示查找 -

\\.  表示查找 .

代码

SELECT prod_name
FROM vendors
WHERE vend_name REGEXP ‘\\.‘
ORDER BY vend_name;

-------------返回-------------

+----------------------+
|  vend_name   |
+----------------------+
|  Furball Inc.    |
+----------------------+

LIKE 匹配整个串,而REGEXP匹配子串。

时间: 2024-10-12 10:18:34

使用MySQL正则表达式查询的相关文章

mysql 正则表达式查询

1.mysql-->查询以0-9开始,中间是{}0-9或者.}中间可以没有,以0-9结束 结束也可以没有 1 SELECT 2 * 3 FROM 4 project_task_ledger 5 WHERE 6 plan_working_hours REGEXP '^[0-9][0-9|.]*[0-9]*$' 2.mysql-->查询不是{0-9或者.}组成.或者以.开头和结尾的结果 SELECT * FROM project_task_ledger WHERE plan_working_hou

MySql模糊查询like通配符使用详细介绍

MySql模糊查询like通配符使用详细介绍 转载:http://chenpeng.info/html/2020 MySQL提供标准的SQL模式匹配,以及一种基于象Unix实用程序如vi.grep和sed的扩展正则表达式模式匹配的格式. 一.SQL模式 SQL的模式匹配允许你使用“_”匹配任何单个字符,而“%”匹配任意数目字符(包括零个字符).在 MySQL中,SQL的模式缺省是忽略大小写的.下面显示一些例子.注意在你使用SQL模式时,你不能使用=或!=:而使用LIKE或NOT LIKE比较操作

MySql基本查询、连接查询、子查询、正则表达查询讲解

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 查询数据指从数据库中获取所需要的数据.查询数据是数据库操作中最常用,也是最重要的操作.用户可以根据自己对数据的需求,使用不同的查询方式.通过不同的查询方式,可以获得不同的数据.MySQL中是使用SELECT语句来查询数据的.在这一章中将讲解的内容包括.1.查询语句的基本语法2.在单表上查询数据3.使用聚合函数查询数据4.多表上联合查询5.子查询6.合并查询结果7.为表和字段取别名8.使用正则

Windows中使用MySQL 数据查询(三)

一.排序 select * from employees order by name; 字符型默认字符顺序(也就是说z永远比a大),不管大小写:如果想按编码值排序(也就是说小写永远大于大写),则使用 select * from employees order by binary name; 二.取前n条记录(n在本例中为3) select * from employees order by id limit 3; 三.日期时间函数 1.获取当前日期 select curdate(); 2.取年

MySQL模糊查询:LIKE模式和REGEXP模式

MySQL模糊查询提供了两种模式:LIKE模式和REGEXP模式. LIKE模式 LIKE模式是使用的LIKE 或 NOT LIKE 比较运算符进行模糊查询. SELECT 字段 FROM 表 WHERE 字段 LIKE[NOT LIKE] '条件' 针对条件,有以下几种通配符: 通配符 含义 % 表示任意一个或多个字符,可匹配任意类型和长度的字符 _ 表示任意单个字符,匹配单个任意字符 ESCAPE 关键字定义转义符.在模式中,当转义符置于通配符之前时,该通配符就解释为普通字符. 示例: #

mysql模糊查询 like/REGEXP

原文:mysql模糊查询like/REGEXP 增删改查是mysql最基本的功能,而其中查是最频繁的操作,模糊查找是查询中非常常见的操作,于是模糊查找成了必修课. like模式 like意思是长得像,有两个模式:_和% _表示单个字符,通常用来查询定长的数据,如查出所有姓王的三个字的人名,假设姓名列名为name,注意“王”后面有两个_ select name from 表名 where name like '王__'; %表示0个或多个任意字符,如查出所有姓王的人名 select name fr

MySQL常用查询操作

下面是常用mysql数据库查询总结: 显示一个数据表的所有数据. mysql> SELECT * FROM [table name]; 返回指定数据表的各列信息. mysql> show columns from [table name]; 使用值"blog"过滤显示选定的某些行. mysql> SELECT * FROM [table name] WHERE user = "blog"; 显示所有包含name为"Bob"和ph

MySQL简单查询详解

MySQL的查询操作 单表查询:简单查询 多表查询:连接查询 联合查询 布尔条件表达式操作符    = 等值比较    <=>:跟空值比较不会产生额外信息的等值比较    <>:不等值    <:     <=:    >    >=    IS NULL    IS NOT NULL        LIKE:        支持的通配符: %(任意长度的任意字符),_(任意单个字符)    RLIKE,REGEXP: 支持使用正则表达式    IN: 判断

mysql 表查询

1 单表查询 查询所有字段 select * from table_name 查询指定记录 and not like desc asc order by in 关键字 in (1,2,3,4) between 关键字 between 1 and 2 like  %或者_ 查询模糊匹配的 _ 代表1个 % 代表1个或者多个. and 的多条件查询  and 优先生效 or 的多条件查询 district 不同 多列排序 select * from city where id<10 order by