`
leotody
  • 浏览: 6588 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

mysql 通配符详细用法

阅读更多
MySQL 通配符

SQL的模式匹配允许你使用“_”匹配任何单个字符,而“%”匹配任意数目字符(包括零个字符)。在 MySQL中,SQL的模式缺省是忽略大小写的。下面显示一些例子。
注意在你使用SQL模式时,你不能使用=或!=;而使用LIKE或NOT LIKE比较操作符。

为了找出以“b”开头的名字:
mysql> SELECT * FROM pet WHERE name LIKE "b%";
+--------+--------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+--------+--------+---------+------+------------+------------+
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |
+--------+--------+---------+------+------------+------------+

为了找出以“fy”结尾的名字:
mysql> SELECT * FROM pet WHERE name LIKE "%fy";
+--------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+--------+--------+---------+------+------------+-------+
| Fluffy | Harold | cat | f | 1993-02-04 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+--------+--------+---------+------+------------+-------+

为了找出包含一个“w”的名字:
mysql> SELECT * FROM pet WHERE name LIKE "%w%";
+----------+-------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+----------+-------+---------+------+------------+------------+
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |
| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |
+----------+-------+---------+------+------------+------------+

为了找出包含正好5个字符的名字,使用“_”模式字符:
mysql> SELECT * FROM pet WHERE name LIKE "_____";
+-------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+-------+--------+---------+------+------------+-------+
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+-------+--------+---------+------+------------+-------+
由MySQL提供的模式匹配的其他类型是使用扩展正则表达式。当你对这类模式进行匹配测试时,使用REGEXP和NOT REGEXP操作符(或RLIKE和NOT RLIKE,它们是同义词)。

扩展正则表达式的一些字符是:
“.”匹配任何单个的字符。
一个字符类“[...]”匹配在方括号内的任何字符。例如,“[abc]”匹配“a”、“b”或“c”。为了命名字符的一个范围,使用一个“-”。“[a-z]” 匹配任何小写字母,而“[0-9]”匹配任何数字。
“ * ”匹配零个或多个在它前面的东西。例如,“x*”匹配任何数量的“x”字符,“[0-9]*”匹配的任何数量的数字,而“.*”匹配任何数量的任何东西。
正则表达式是区分大小写的,但是如果你希望,你能使用一个字符类匹配两种写法。例如,“[aA]”匹配小写或大写的“a”而“[a-zA-Z]”匹配两种写法的任何字母。
如果它出现在被测试值的任何地方,模式就匹配(只要他们匹配整个值,SQL模式匹配)。
为了定位一个模式以便它必须匹配被测试值的开始或结尾,在模式开始处使用“^”或在模式的结尾用“$”。
为了说明扩展正则表达式如何工作,上面所示的LIKE查询在下面使用REGEXP重写:

为了找出以“b”开头的名字,使用“^”匹配名字的开始并且“[bB]”匹配小写或大写的“b”:
mysql> SELECT * FROM pet WHERE name REGEXP "^[bB]";
+--------+--------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+--------+--------+---------+------+------------+------------+
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |
+--------+--------+---------+------+------------+------------+

为了找出以“fy”结尾的名字,使用“$”匹配名字的结尾:
mysql> SELECT * FROM pet WHERE name REGEXP "fy$";
+--------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+--------+--------+---------+------+------------+-------+
| Fluffy | Harold | cat | f | 1993-02-04 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+--------+--------+---------+------+------------+-------+

为了找出包含一个“w”的名字,使用“[wW]”匹配小写或大写的“w”:
mysql> SELECT * FROM pet WHERE name REGEXP "[wW]";
+----------+-------+---------+------+------------+------------+
| name | owner | species | sex | birth | death |
+----------+-------+---------+------+------------+------------+
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |
| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |
+----------+-------+---------+------+------------+------------+
既然如果一个正规表达式出现在值的任何地方,其模式匹配了,就不必再先前的查询中在模式的两方面放置一个通配符以使得它匹配整个值,就像如果你使用了一个SQL模式那样。

为了找出包含正好5个字符的名字,使用“^”和“$”匹配名字的开始和结尾,和5个“.”实例在两者之间:
mysql> SELECT * FROM pet WHERE name REGEXP "^.....$";
+-------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+-------+--------+---------+------+------------+-------+
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+-------+--------+---------+------+------------+-------+

你也可以使用“{n}”“重复n次”操作符重写先前的查询:
mysql> SELECT * FROM pet WHERE name REGEXP "^.{5}$";
+-------+--------+---------+------+------------+-------+
| name | owner | species | sex | birth | death |
+-------+--------+---------+------+------------+-------+
| Claws | Gwen | cat | m | 1994-03-17 | NULL |
| Buffy | Harold | dog | f | 1989-05-13 | NULL |
+-------+--------+---------+------+------------+-------+

http://www.playhosts.com/bbs/read.php?tid=12357

转自:http://blog.csdn.net/sunboy_2050/article/details/5130386
=====================================================================
分享到:
评论

相关推荐

    浅谈mysql通配符进行模糊查询的实现方法

    本文将深入探讨MySQL的通配符使用方法以及如何实现模糊查询,旨在帮助开发者更好地理解和应用这些功能。 首先,我们需要了解SQL中的操作符和通配符。`LIKE`操作符是SQL中用于模糊匹配的关键字,它允许我们在比较时...

    远程连接MySQL所遇到的问题以及解决问题方法

    以下是解决不能进行远程连接 MySQL 数据库的问题的方法,这些方法同样适用于没有使用 YUM 命令安装的用户。 首先,需要使用 yum 命令安装 MySQL 服务器。使用以下命令安装 MySQL 服务器: yum -y install mysql-...

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

    本文将详细介绍`LIKE`模糊查询中的两种主要通配符:`%`和`_`,以及MySQL提供的扩展正则表达式模式匹配。 一、SQL模式匹配 1. `%`通配符:`%`可以匹配任意数量的字符,包括零个字符。例如,`LIKE '%三%'`会找到所有...

    mysql不能用localhost,127.0.0.1连接,只能用ip连接 的解决方法

    如果仍然无法连接,查阅MySQL的日志文件,如`/var/log/mysql/error.log`(Linux)或`C:\ProgramData\MySQL\MySQL Server x.x\data\hostname.err`(Windows),日志通常会提供更详细的错误信息。 总之,解决“mysql...

    SQL 通配符

    下面我们将深入探讨SQL中的两种主要通配符:百分号(%)和下划线(_),以及它们的用法。 1. **百分号(%)**: 百分号通配符 `%` 代表零个、一个或多个任意字符。当你在查询中使用`%`时,它会匹配任何字符串,...

    linux下mysql数据库的安装方法

    本文将详细介绍几种在Linux操作系统上安装MySQL的具体操作方法,并提供相关的注意事项和配置建议。无论您是初学者还是有一定经验的系统管理员,都能从中获得有价值的信息。 #### 二、安装MySQL的方法 在Linux环境...

    mysql.rar_MYSQL_mysql select c

    在"www.pudn.com.txt"可能包含更多示例代码或详细教程,帮助用户理解如何在C语言中使用MySQL接口。同时,"接口"可能指的是C语言的MySQL客户端库头文件和库文件,这些文件提供了上述接口函数的定义和实现。 总的来说...

    SQL中查询中使用通配符

    下面将详细介绍SQL中的几种常见通配符及其用法。 1. `%` - 百分号通配符 `%` 是SQL中最常用的通配符,它代表零个、一个或多个字符。当你在查询中使用`%`时,数据库系统会返回所有与之匹配的数据,无论该位置有多少...

    mysql总结超详细

    ### MySQL总结超详细 #### 1. 数据库的种类 ##### 1.1 关系型数据库...以上内容涵盖了MySQL的基础知识、安装配置、安全管理、用户权限管理以及表的操作等方面,希望能够帮助读者全面了解MySQL的使用方法和最佳实践。

    MySql完全卸载&远程连接配置

    下面将详细介绍MySQL的完全卸载步骤。 #### 步骤1:停止MySQL服务 - 在Windows系统上,可以通过“服务”管理工具(services.msc)找到MySQL服务并停止。 - 对于Linux系统,可以使用命令`sudo service mysql stop`或...

    MySql的使用方法和技巧

    本文将详细介绍MySQL的基本使用方法和高级技巧。 #### 二、权限管理 MySQL提供了丰富的权限管理机制,用于控制用户对数据库资源的访问。了解并正确使用这些权限对于保护数据安全至关重要。 ##### 2.1 权限类型 ...

    linux下mysql8安装及报错汇总

    使用以下命令来卸载原有的 MySQL 软件包: `rpm -pa | grep mysql` 然后,使用以下命令来删除配置文件: `find / -name mysql` 2. 删除 MariaDB 的文件 由于 MySQL 在 CentOS7 中收费了,所以已经不支持 MySQL ...

    通过Navicat for MySQL远程连接的时候报错mysql 1130的解决方法.docx

    下面将详细介绍两种解决方法:一种是通过修改MySQL的用户表来实现,另一种则是直接通过SQL命令授予远程访问权限。 #### 方法一:修改MySQL用户表 **步骤1:登录MySQL服务器** 首先确保您能够在本地登录MySQL...

    MySql HA.docx

    - 使用 `LIKE` 语句进行模糊匹配时,如果通配符位于搜索字符串的开头,则可能导致索引失效。 - 在 `ORDER BY` 或 `GROUP BY` 子句中,如果排序字段没有建立索引,则可能无法利用索引加速排序过程。 - 当执行条件...

    mysql正则表达式 LIKE 通配符

    LIKE操作符通常与通配符一起使用,例如“%”和“_”,来实现模糊匹配。而REGEXP(以及它的同义词RLIKE)是基于正则表达式,提供了一种更加强大和灵活的匹配方式。 正则表达式(Regular Expression)是一种用于匹配...

    MYSQL必知必会读书笔记第八章之使用通配符进行过滤

    本篇读书笔记详细介绍了如何在MySQL中使用通配符进行过滤,这部分内容对于数据库管理人员和开发人员是必知必会的知识点。 首先,要了解的是MySQL的基本概念和功能。MySQL是一种流行的开源关系型数据库管理系统...

    浅谈MySQL模糊查询中通配符的转义

    在MySQL数据库中,模糊查询是一种常见的数据检索方法,它允许我们使用特定的通配符来查找不完全匹配的记录。通配符主要有两种,即百分号(%)和下划线(_)。百分号(%)用于匹配任意数量的字符,包括零个字符,而...

    mysql远程访问授权

    ”这条SQL语句展示了如何授予一个名为“yourname”的用户所有权限,使其可以从任何主机(由'%'通配符表示)连接到MySQL服务器,并使用密码“yourpasswd”进行身份验证。这里的“all privileges”表示授予全部权限,...

    (完整)MySQL数据库原理与应用期末考试复习资料.pdf

    1. **数据库创建**:在MySQL中,使用`CREATE DATABASE`命令来创建新的数据库,如题目中的选项A所示。 2. **操作系统兼容性**:MySQL数据库管理系统可以在多种操作系统上运行,包括Windows、Linux、UNIX等,如选项D...

    Linux开启mysql远程连接

    接下来将详细介绍如何在Linux环境下开启MySQL的远程连接功能。 #### 四、步骤一:创建远程连接MySQL授权用户 首先需要登录到MySQL数据库,并创建一个允许远程连接的用户。这里我们创建一个名为`itlogger`的用户,...

Global site tag (gtag.js) - Google Analytics