文章导航PC6首页软件下载单机游戏安卓资源苹果资源

pc软件新闻网络操作系统办公工具编程服务器软件评测

安卓新闻资讯应用教程刷机教程安卓游戏攻略tv资讯深度阅读综合安卓评测

苹果ios资讯苹果手机越狱备份教程美化教程ios软件教程mac教程

单机游戏角色扮演即时战略动作射击棋牌游戏体育竞技模拟经营其它游戏游戏工具

网游cf活动dnf活动lol周免英雄lol礼包

手游最新动态手游评测手游活动新游预告手游问答

您的位置:首页技术开发SQL 学院 → 解决MySQL中文模糊查询问题

解决MySQL中文模糊查询问题

时间:2010/2/3 17:38:00来源:本站整理作者:我要评论(0)

解决MySQL中文模糊查询问题:

        我们在MySQL中进行中文模糊查询时,经常会返回一些与之不相关的记录,比如查找 "%a%" 时,返回的可能有中文字符,却没有 a 字符存在。对于此问题目前发现一种方法可以很方便解决。 

例子: 
·希望通过“标题”对新闻库进行检索,关键字可能包含是中英文,如 下 SQL 语句:
 

select id,title,name from achech_com.news where title like ’%a%’


返回的结果,某些 title 字段确定带了“a”关键字,而有些则只有中文,但也随之返回在检索结果中。 
解决方法,使用 BINARY 属性进行检索,如: 
 

select id,title,name from achech_com.news where binary title like ’%a%’


返回的结果较之前正确,但英文字母区分大小写,故有时在检索如“Achech”及“achech”的结果是不一样的。知道了使用 BINARY 属性可以解决前面这个问题,再看看 MySQL 支持的UCASE 及 CONCAT 函数,其中 UCASE 是将英文全部转成大写,而 CONCAT 函数的作用是对字符进行连接,以下是我们完全解决后的 SQL 语句:
 

select id,title,name from achech_com.news 
where binary ucase(title) like concat(’%’,ucase(’a’),’%’)


检索的步骤是先将属性指定为 BINARY ,以精确检索结果,而被 like 的 title内容存在大小写字母的可能,故先使用 ucase 函数将字段内容全部转换成大写字母,然后再进行 like 操作,而 like 的操作使用模糊方法,使用 concat的好处是传进来的可以是直接的关键字,不需要带“%”万用符,将“’a’”直接换成你的变量,在任何语言下都万事无忧了。 当然也可以这样来写:
 

select id,title,name from achech_com.news 
where binary ucase(title) like ucase(’%a%’)

相关视频

    没有数据

相关阅读 Mac OS X 系统上如何升级 Mysql 数据库?mysql数据库root密码忘记的修改方法mysql启动错误1067简单解决办法彻底解决mysql中文乱码的办法Dos远程登录mysql数据库详细图文教程mysql怎么开启远程登录功能mysql自动定时备份数据库的最佳方法-支持windows系统mysql数据库损坏快速修复方法

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 sql 2000升级到sql 20sql server安装教程 安装sql 2005时visual studio just-in-timesql server停止和重启命令SQL Server备份和灾难恢复MySQL数据库十大优化技巧

人气排行 如何轻松解决MYSQL数据库连接过多的错误sql server停止和重启命令SQL报表错误“未能为SSL/TLS安全通道建立信sql 2000升级到sql 2005后访问速度变慢图文安装sql 2005时visual studio just-in-timeSqlServer2000获取当前日期及格式SQL的排序,分组,统计常用语句解决MySQL中文模糊查询问题