文档章节

mysql中模糊查询

myzyq
 myzyq
发布于 2015/08/16 11:41
字数 560
阅读 35
收藏 2

1,%:表示任意0个或多个字符。可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示。 比如 SELECT * FROM [user] WHERE u_name LIKE '%三%' 将会把u_name为“张三”,“张猫三”、“三脚猫”,“唐三藏”等等有“三”的记录全找出来。 另外,如果需要找出u_name中既有“三”又有“猫”的记录,请使用and条件 SELECT * FROM [user] WHERE u_name LIKE '%三%' AND u_name LIKE '%猫%' 若使用 SELECT * FROM [user] WHERE u_name LIKE '%三%猫%'

虽然能搜索出“三脚猫”,但不能搜索出符合条件的“张猫三”。

2,_: 表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句: 比如 SELECT * FROM [user] WHERE u_name LIKE '' 只找出“唐三藏”这样u_name为三个字且中间一个字是“三”的;

再比如 SELECT * FROM [user] WHERE u_name LIKE '三__'; 只找出“三脚猫”这样name为三个字且第一个字是“三”的;

3,[ ]:表示括号内所列字符中的一个(类似正则表达式)。指定一个字符、字符串或范围,要求所匹配对象为它们中的任一个。 比如 SELECT * FROM [user] WHERE u_name LIKE '[张李王]三' 将找出“张三”、“李三”、“王三”(而不是“张李王三”); 如 [ ] 内有一系列字符(01234、abcde之类的)则可略写为“0-4”、“a-e” SELECT * FROM [user] WHERE u_name LIKE '老[1-9]' 将找出“老1”、“老2”、……、“老9”;

4,[^ ] :表示不在括号所列之内的单个字符。其取值和 [] 相同,但它要求所匹配对象为指定字符以外的任一个字符。 比如 SELECT * FROM [user] WHERE u_name LIKE '[^张李王]三' 将找出不姓“张”、“李”、“王”的“赵三”、“孙三”等; SELECT * FROM [user] WHERE u_name LIKE '老[^1-4]'; 将排除“老1”到“老4”,寻找“老5”、“老6”、……

5,查询内容包含通配符时 由于通配符的缘故,导致我们查询特殊字符“%”、“”、“[”的语句无法正常实现,而把特殊字符用“[ ]”括起便可正常查询。据此我们写出以下函数: function sqlencode(str) str=replace(str,"';","';';") str=replace(str,"[","[[]") ';此句一定要在最先 str=replace(str,"","[_]") str=replace(str,"%","[%]") sqlencode=str end function

本文转载自:http://www.jb51.net/article/48315.htm

共有 人打赏支持
myzyq
粉丝 2
博文 39
码字总数 4196
作品 0
昌平
程序员
MySQL单表多字段模糊查询解决方法

在最近的一个项目需要实现在单表中对多字段进行多个关键字的模糊查询,但这数个关键字并不一定都存在于某个字段 例如现有table表,其中有title,tag,description三个字段,分别记录一条资料...

BearCatYN
2014/09/20
0
1
mongodb(一) 命令操作

---layout: blogistop: truetitle: "mongodb 命令操作"date: 2018-08-01category: mongodbtags: mongodb --- 查询 基本查询 模糊查询(示例中: 和 省略) |------|----------------------|----......

开心的哈士奇
前天
0
0
java mysql hr系统中的员工编号问题

java mysql 对于hr系统中的员工编号该设计成什么类型的?要实现员工编号自增,又要支持模糊查询,设置成int 可以实现自增,但似乎不支持模糊查询,设置成varchar不可以自增.......

nvlll
2016/09/26
361
10
求助ibatis单字段如何匹配多个模糊查询。在线等

假设companyInfor表中有address字段, 但address字段中的都是地址全称:比如是中国北京市XX街XX路...... 现在我要查询出是北京,上海,广州的公司 select * form companyinfor where address...

代码诗人
2016/07/29
314
3
MySql 查询以逗号分隔的字符串的方法(正则)

现数据库表中某个字段保存的值为“01,07,08”,需要sql去查询下表中到相应的名称: 1、使用findinset()... 查询字段中包含01,07,08的记录: SELECT * FROM test WHERE find_in_set('01',it...

豆花饭烧土豆
2016/03/13
411
0

没有更多内容

加载失败,请刷新页面

加载更多

Python爬虫:Scrapy框架的安装和基本使用

大家好,本篇文章我们来看一下强大的Python爬虫框架Scrapy。Scrapy是一个使用简单,功能强大的异步爬虫框架,我们先来看看他的安装。 Scrapy的安装 Scrapy的安装是很麻烦的,对于一些想使用S...

糖宝lsh
30分钟前
3
0
Android Dialog几种对话框

1,普通对话框 2,单选对话框 3,多选对话框 4,日期选择对话框 5,时间选择对话框 6,日期选择对话框 7,进度条对话框 普通对话框 AlertDialog.Builder builder = new AlertDialog.Builde...

lanyu96
37分钟前
1
0
awk命令

-F选项的作用是指定分隔符。如果不加-F选项,则以空格或者tab为分隔符。print为打印操作,用来打印某个字段。$1为第1个字段,$2为第2个字段,以此类推。但是$0比较特殊,它表示整行: [root@cen...

野雪球
44分钟前
2
0
一切都靠大数据:滴滴已封禁4.3万人员、车辆

这段时间以来,滴滴出行相继出炉了各种整改措施,包括自身安全建设和外部社会共建,昨日就刚刚宣布正在筹备建立安全监督顾问委员会。 据媒体最新报道,9月30日,上海市交通委员会执法总队、上...

linuxCool
今天
5
0
awk命令用法介绍

10月18日任务 9.6/9.7 awk 1.awk(上)(下) 1.awk 分段操作功能 指定分隔符,并把第一段打印出来,不会改动文件内容 将所有内容打印出来 awk 没有指定分隔符号,则会默认用空格或者空白字符...

hhpuppy
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部