在进行数据库查询时,有完整查询和模糊查询之分。
一般模糊语句如下:
SELECT 字段 FROM 表 WHERE 某字段 Like 条件
其中关于条件,SQL提供了四种匹配模式:
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,"%","[%]")
sqlencode=str
end function
在查询前将待查字符串先经该函数处理即可。
分享到:
相关推荐
mysql 中文 模糊搜索 不精确 解决办法
主要介绍了利用python对mysql表做全局模糊搜索并分页实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
主要介绍了mysql中模糊查询的四种用法,需要的朋友可以参考下
本文将提供两种方法,第一种最土的方法:使用like语句第二种用全文索引,接下来将为你详细介绍
在 MySQL 下,在进行中文模糊检索时,经常会返回一些与之不相关的 记录,如查找 "%a%" 时,返回的可能有中文字符,却没有 a 字符存在。 本人以前也曾遇到过类似问题,经详细阅读 MySQL 的 Manual ,发现可以 有一...
主要介绍了mysql全文模糊搜索MATCH AGAINST方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
在MySQL下,在进行中文模糊检索时,经常会返回一些与之不相关的记录,本文介绍了实现MySQL数据库中文模糊检索的方法。
自写的一个能进行 模糊查询+多选的下拉框(select) 本人亲测,肯定符合你的要求
在MySQL中一般进行模糊搜索都是使用LIKE配合通配符进行查询的,在性能上一定的影响,下面给大家分享MYSQL自带的内置模糊搜索函数,除最后一个外其它三个性能上要比Like快些
效果看了才知道 好不好都给个回复 免费资源
原创 百度 Google 搜索 提示 ajax 模糊查询 JavaScript jsp 最简单的Demo。 用记事本仿数据库中的数据,输入一个字后,会自动加载匹配的信息。有动态效果。
Solr 5.3.1搜索引擎搭建详细教程(包括集成mysql、添加中文分词、添加同义词、查询语法等)
开发环境:Windows10-1703; 开发工具:VisualStudio013 Update5; 数据库工具:Mysql5.7+NaviCat; 运行环境:Windows10-1703; 1.【角色】用户通过【注册】成为本系统的可访问...- 搜索功能:
Axax:php+mysql搜索框自动显示数据 仿google搜索框的模糊列表显示。
歌曲搜索模块:在首页的搜索框中可以输入关键字进行歌曲的模糊搜索 歌曲收藏模块:在榜单列表中或搜索页面中可以点击歌曲进行收藏 我的音乐模块:收藏的歌曲会被添加到我的音乐列表中,在我的音乐列表中也可以对歌曲...
歌曲搜索模块:在首页的搜索框中可以输入关键字进行歌曲的模糊搜索 歌曲收藏模块:在榜单列表中或搜索页面中可以点击歌曲进行收藏 我的音乐模块:收藏的歌曲会被添加到我的音乐列表中,在我的音乐列表中也可以对歌曲...
MySQL单表多关键字模糊查询实现方法是很多人都非常想知道的一个问题,那么,究竟采用什么方法,才能实现MySQL单表多关键字模糊查询呢?