<iframe name="google_ads_frame" marginwidth="0" marginheight="0" src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-4490194096475053&dt=1223616969337&lmt=1218843561&prev_slotnames=1891601125&output=html&slotname=3685991503&correlator=1223616969275&url=http%3A%2F%2Fwww.corange.cn%2Farchives%2F2008%2F06%2F1277.html&ea=off&ref=http%3A%2F%2Fwww.corange.cn%2Fhtml%2Fcorange__60.html&frm=0&cc=100&ga_vid=688568256.1223284479&ga_sid=1223616777&ga_hid=1422474275&ga_fc=true&flash=9.0.124.0&u_h=768&u_w=1024&u_ah=715&u_aw=1024&u_cd=32&u_tz=480&u_java=true" frameborder="0" width="300" scrolling="no" height="250" allowtransparency></iframe>
在MySQL下,在进行中文模糊检索时,经常会返回一些与之不相关的
记录,如查找"-0x1.ebea4bfbffaacp-4%"时,返回的可能有中文字符,却没有a字符存在。
本人以前也曾遇到过类似问题,经详细阅读MySQL的Manual,发现可以
有一种方法很方便的解决并得到满意的结果。
例子:
·希望通过“标题”对新闻库进行检索,关键字可能包含是中英文,如
下SQL语句:
selectid,title,namefromachech_com.newswheretitlelike'-0x1.ebea4bfbebe84p-4%'
返回的结果,某些title字段确定带了“a”关键字,而有些则只有中文,
但也随之返回在检索结果中。
解决方法,使用BINARY属性进行检索,如:
selectid,title,namefromachech_com.newswherebinarytitlelike'-0x1.ebea4bfbebe84p-4%'
返回的结果较之前正确,但英文字母区分大小写,故有时在检索如“Achech”
及“achech”的结果是不一样的。
知道了使用BINARY属性可以解决前面这个问题,再看看MySQL支持的
UCASE及CONCAT函数,其中UCASE是将英文全部转成大写,而CONCAT函
数的作用是对字符进行连接,以下是我们完全解决后的SQL语句:
selectid,title,namefromachech_com.newswherebinaryucase(title)likeconcat('%',ucase('a'),'%')
检索的步骤是先将属性指定为BINARY,以精确检索结果,而被like的title
内容存在大小写字母的可能,故先使用ucase函数将字段内容全部转换成大
写字母,然后再进行like操作,而like的操作使用模糊方法,使用concat
的好处是传进来的可以是直接的关键字,不需要带“%”万用符,将“'a'”直接
换成你的变量,在任何语言下都万事无忧了。
当然你也可以这么写:
selectid,title,namefromachech_com.newswherebinaryucase(title)likeucase('0x0.00020bfbebe08p-1022%')
检索的结果还算满意吧,不过速度可能会因此而慢N毫秒喔。
分享到:
相关推荐
解决MySQL数据库中文模糊检索问题的方法
在MySQL下,在进行中文模糊检索时,经常会返回一些与之不相关的记录,本文介绍了实现MySQL数据库中文模糊检索的方法。
嵌入式数据库(MySQL)中数据模糊检索方法解析.pdf
在 MySQL 下,在进行中文模糊检索时,经常会返回一些与之不相关的 记录,如查找 "%a%" 时,返回的可能有中文字符,却没有 a 字符存在。 本人以前也曾遇到过类似问题,经详细阅读 MySQL 的 Manual ,发现可以 有一...
PHP+excel 通用图书信息模糊检索系统 PC网页版这是本作者发布的首款php模糊查询系统。性能说明//网址/目录/ (上传直接使用,无需mysql数据库等的支持)然后notepad++打开inc/conn.Php查看参数与网页对应关系。然后打开...
主要介绍了Mybatis使用MySQL模糊查询时输入中文检索不到结果的解决办法的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
最后,开发了一套具有快速搜索和地图定位展示的Web地名检索系统,使用500万条真实地名数据测试了其检索性能,查询平均耗时不到1 s,比MySQL数据库模糊检索效率提高了15倍,匹配结果也更加准确,能够提供高效灵活的...
问题是match against对中文模糊搜索支持不是太好 新建一个utf8 MyISAM类型的表并建立一个全文索引 : CREATE TABLE articles ( id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY, title VARCHAR(200), body...
SpringBoot+es+vue搭建博客检索系统 需要提前安装好 ElasticSearch 。logstash 安装下文有具体说明...启动本项目,在本地 8081 端口访问项目,可以看到有两个按钮,分别是通过 MySQL 的模糊查询和 es 的检索耗时比较。
示例代码演示了根据单个条件、多个条件、逻辑运算符、比较运算符和模糊查询来筛选数据的方法。还包括了查询为空或非空的数据的示例。每个示例都附带了相应的注释,以帮助您理解每个步骤。 通过阅读和实践这个文档,...
毕业设计,基于SSM+LayUI+MySql开发的文章管理系统,内含Java完整...包括基于模糊检索和精确检索的全文、标题、作者的文章检索。 (5)文章信息浏览 -文章详细信息浏览和文章评论浏览 -发表文章评论 -分类文章列表
3、检索功能强大,可以使用通配符和多词组模糊检索,可以分别选择快速、标准、全文模式进行检索。提供中日文部首索引、中文拼音索引和日文假名索引,可以像传统纸质词典一样检索。支持语音朗读,全程TTS语音支持。
该系统将实现基本的目录检索,模糊查询,书籍损坏记录,书籍的运输信息等,实现图书预约,违规查询功能。 图书馆在正常运营中面对大量书籍、读者信息以及两者间相互联系产生的借书信息、还书信息、图书预约信息等。...
我们知道,在SQL之中,可以用 like 这个谓词(表达式) 来进行模糊检索,并支持 %,?,_等占位符.但是,这个模糊检索的功能有很多限制,简单来说就是太模糊了。在MySQL中提供了 REGEXP 关键字来支持正则表达式,当然,只是一些...
asp+excel农村农家书屋图书在线检索系统 V201904更新说明:时隔四五年,作一次大的更新1. 使用最新版查询系统界面,更美观2. 使用搜索语句,速度性能更优秀3. 优化数据库后缀识别算法4. 优化表的识别,不必非得sheet...
索引是存放在模式(schema)中的一个数据库对象,索引的作用就是提高对表的检索查询速度, 索引是通过快速访问的方法来进行快速定位数据,从而减少了对磁盘的读写操作。 索引是数据库的一个对象,它不能独立存在,...
asp excel农村农家书屋图书在线检索系统是个专为农村农家书屋图书在线检索而设计,信息化时代,简单的检索功能可以放你工作效率事半功倍哦。 1. 代码极为简单,你可以稍加改进即可用于适合自己的模糊查询系统,功能...
十分钟学会使用 Elasticsearch 优雅搭建自己的搜索系统。 什么是elasticsearch ...如果使用MySQL的%key%的模糊匹配来与es的搜索进行比较,在8万数据量时他们的耗时已经达到40:1左右,毫无疑问在速度方面es完胜。
毕业设计,基于SSM+MySql+Bootstrap+EasyUI开发的献血者管理献血网,内含Java完整源代码,数据库脚本等 ...1.查询检索:可以进行模糊查询、还可以通过姓氏及身份证号进行查询,还可以分页展示 2.信息登记:登记各种自