`
kree
  • 浏览: 127134 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

MySQL模糊查询语法(推荐)

阅读更多
$sql="select * from table_name where field_name like '%$var%'"; 
$result=mysql_query($sql) or die; 

MySQL提供标准的SQL模式匹配,以及一种基于象Unix实用程序如vi、grep和sed的扩展正则表达式 

模式匹配的格式。 

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 | 
+-------+--------+---------+------+------------+-------+ 

查找数字和其他的模糊查询语句
Select * from pet where name REGEXP "[^a-zA-Z].";

 

分享到:
评论

相关推荐

    MySQL模糊查询语法

    MySQL模糊查询语法 MySQL模糊查询语法 MySQL模糊查询语法

    MySQL模糊查询语法[文].pdf

    MySQL模糊查询语法[文].pdf

    mysql数据库的基本操作语法

    MySQL中约束保存在information_schema数据库的table_constraints中,可以通过该表查询约束信息; 约束主要完成对数据的检验,保证数据库数据的完整性;如果有相互依赖数据,保证该数据不被删除。 常用五类约束: ...

    Solr5.3.1搜索引擎搭建详细教程(包括集成mysql、添加中文分词、添加同义词、查询语法等)

    Solr 5.3.1搜索引擎搭建详细教程(包括集成mysql、添加中文分词、添加同义词、查询语法等)

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

    (3)模糊查询 like 像 LIKE关键字可以匹配字符串是否相等。如果字段的值与指定的字符串相匹配,则满足查询条件,该纪录将被查询出来。如果与指定的字符串不匹配,则不满足查询条件。其语法规则如下:[ NOT ] LIKE ...

    MySQL模糊查询语句整理集合

    SQL模糊查询语句 一般模糊语句语法如下: SELECT 字段 FROM 表 WHERE 某字段 Like 条件 其中关于条件,SQL提供了四种匹配模式: 1、%:表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请...

    MySQL核心技术视频.zip

    15_MySQL语法规范介绍 16_图形化用户界面客户端的安装 17_图形化用户界面客户端的介绍 18_myemployees库的四张表介绍 19_基础查询介绍 20_查询表中的字段 21_查询时的细节注意补充 22_查询常量、表达式、函数 23_起...

    MySQL查询条件常见用法详解

    本文实例讲述了MySQL查询条件常见用法。分享给大家供大家参考,具体如下: 条件 使用where子句对表中的数据筛选,结果为true的行会出现在结果集中 语法如下: select * from 表名 where 条件; 例: select * from ...

    MySQL备份与恢复实战(PDF版)

    包含下列主题:mysql 日志文件,使用mysqld 加相应选项...SQL 语法备份及恢复。拷贝数据文件备份(对Innodb 还需拷贝日志文件)。MyISAM 表的检查与修复(另见《MySql 存储引擎》)。Innodb 表的碎片整理和模糊检查点。

    MySQL数据库零基础到精通视频教程

    19-作业讲解与模糊查询 20-外连接查询 21-数据库表设计一 22-数据库表设计二 23-视图 24-数据库建模一(PowerDesigner) 25-数据库建模二与事务 26-开启事务、回滚与提交事务 27-脏读 28-不可重复读 29-存储过程基本...

    SELECT语法.docx

    SELECT语法d的内容介绍,学习 掌握MySQL删除数据  掌握MySQL查询语句  掌握模糊查询  理解连接查询原理  掌握内连接查询  掌握左外连接查询  理解自连接

    MySQL数据库中CAST与CONVERT函数实现类型转换的讲解

    MySQL 的CAST()和CONVERT()函数可用来获取一个类型的值,并产生另一个类型的值。 两者具体的语法如下: CAST(value as type); CONVERT(value, type); 就是CAST(xxx AS 类型), CONVERT(xxx,类型)。 可以转换的类型...

    mysql数据库操作

    C、模糊查寻 Like %表示任意多个字符 _表示一个任意字符 D、范围查询 In 表示在一个非连续的范围内 Between.......and.............表示在一个连续的范围内 需求:查询编号是8,10,12的数据 实例:select * from ...

    MongoDB常用语法/Mongodb的基本使用

    MongoDB的基本常用语法:1、创建、查询数据库 创建数据库 查询数据库 2、创建集合、查看 创建集合插入数据 查看集合 查看集合中的数据 3、删除集合、删除数据库 删除集合 删除数据库 4、操作符 4、增、删、改、查 1...

    Java课程设计-基于JavaWeb和Mysql实现的宿舍管理系统源码带数据库+详细说明文档.zip

    宿舍管理员管理:可以分页显示显示、添加、删除、修改、查找(按名字模糊查询、按性别查询)、排序宿舍管理员信息 3. 学生管理:可以分页显示显示、添加、删除、修改、查找(按名字模糊查询、按性别查询)、排序...

    Vision在线电影网站源码(Movie.zip)

    1、项目名称:Vision在线电影网站 2、项目描述: 基于Python语法和Django框架的在线电影播放...②模糊查询 ③播放页弹幕 ④后台管理 5、详细描述:https://blog.csdn.net/weixin_43846708/article/details/113941859

    mysql-slave-self-healing:MySQL Slave故障自愈

    目前只模糊的定义了3种修复模式,分别是SQL语法错误、MyISAM表损坏以及中继日志的损坏,除此之外,其他一切错误都是通过sql_slave_skip_counter来完成,简单且粗暴,对数据的一致性造成成吨伤害。 1.3、业界同行对主...

    十分钟学会使用 Elasticsearch 优雅搭建自己的搜索系统.pdf

    十分钟学会使用 Elasticsearch 优雅搭建自己的搜索系统。 什么是elasticsearch ...如果使用MySQL的%key%的模糊匹配来与es的搜索进行比较,在8万数据量时他们的耗时已经达到40:1左右,毫无疑问在速度方面es完胜。

    SQL智能完成工具BDB

    切换至“查询分析”页签, 您可以按CTRL+J快捷键列出选择项 (默认,可在“选项”中进行更改), <br>或直接输入语法, 系统会根据当前输入的字符进行智能搜索, 如果有搜索到模糊匹配项,则自动弹出...

Global site tag (gtag.js) - Google Analytics