mysql进行中文模糊检索时,经常会返回一些与之不相关的记录,如查找 "%a%" 时,返回的可能有中文字符,却没有a字符存在。

通过阅读MySQL的Manual,发现了一种可以满意解决此问题的方法。

希望通过“标题”对新闻库进行检索,关键字可能包含是中英文,如下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%')

检索的结果还可以,不过速度可能会因此而慢N毫秒。

mysql 中文模糊查询_解决mysql中文模糊查询问题的方法相关推荐

  1. mysql占用多少内存_解决mySQL占用内存超大问题

    解决mySQL占用内存超大问题 解决mySQL占用内存超大问题 为了装mysql环境测试,装上后发现启动后mysql占用了很大的虚拟内存,达8百多兆.网上搜索了一下,得到高人指点my.ini.再也没见 ...

  2. mysql 4 中文模糊查询_解决MySQL中文模糊查询问题

    解决MySQL中文模糊查询问题: 我们在MySQL中进行中文模糊查询时,经常会返回一些与之不相关的记录,比如查找 "%a%" 时,返回的可能有中文字符,却没有 a 字符存在.对于此 ...

  3. mysql中文模糊查询_解决MySQL中文模糊查询问题

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

  4. mysql不同版本乱码_解决MySQL中文乱码以及版本不一致问题_MySQL

    一.导出数据 先说明一下自己的环境:Mac OS X 10.8.3, MySQL Community Server 5.6.10, MySQL Workbench 5.2.47. 我想把本机数据库内的 ...

  5. xp mysql字符集与乱码_解决MYSQL中文乱码问题三种方法

    方法三 1>本文将消除乱码分为三步: >消除页面乱码, >消除从mysql教程中读出中文乱码, >消除插入mysql数据库教程中的中文乱码: 15>注意编码表示方式在网页 ...

  6. mysql数据库断开连接_解决mysql服务器在无操作超时主动断开连接的情况

    我们在使用mysql服务的时候,正常情况下,mysql的设置的timeout是8个小时(28800秒),也就是说,如果一个连接8个小时都没有操作,那么mysql会主动的断开连接,当这个连接再次尝试查询 ...

  7. mysql拒绝远程连接_解决Mysql数据库拒绝远程连接和忘记密码的问题

    解决数据库忘记密码的问题 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 编辑m ...

  8. mysql远程不能访问_解决MySQL无法远程访问的3方案

    在解决MySQL无法远程访问的实际操作中我们经常会选择的方案,除了改表法与授权法,在安装MySQL的机器上运行这一方法也是比较好用的方案,以下就是文章对解决MySQL无法远程访问的一些解决方案的描述. ...

  9. mysql字符集乱码问题_解决mysql字符集乱码问题

    character-set-server/default-character-set:服务器字符集,默认情况下所采用的. character-set-database:数据库字符集. characte ...

最新文章

  1. [51单片机] HC-SR04超声波测距仪 基础代码
  2. 三层架构与四大天王之——查
  3. Facebook的GBDT+LR模型python代码实现
  4. matlab计算流函数,hanyeah
  5. GenseeSDK 使用Kotlin要注意TODOAndroid Studio关闭TODO
  6. 转载---LIBRARY_PATH和LD_LIBRARY_PATH环境变量的区别
  7. Nemo(Nightwish乐队)
  8. 啤酒与尿布,咩叔原创基于图论简单到爆的实时关联性算法
  9. 批处理 无效驱动器规格_电脑维修之硬盘驱动器的常见故障判断
  10. 【前端 · 面试 】HTTP 总结(二)—— HTTP 消息
  11. 语音识别系统市场前景及发展趋势
  12. marquee标签制作轮播图
  13. 【车间调度】基于matlab差分进化算法求解作业车间调度问题【含Matlab源码 1743期】
  14. 分享Visual SVN Hook Script—— 允许客户端编辑SVN log message
  15. 利用信息差怎么赚钱?分享两个信息差赚钱项目
  16. MATLAB主题设置配色方案
  17. IllegalStateException: Failed to introspect annotated methods on class org.springframework.boot.web.
  18. 赵小楼《天道》《遥远的救世主》深度解析(125)做你该做的,受你该受的
  19. 【信息系统项目管理师】项目管理过程的三万字大论文
  20. MOOS-ivp 实验九 分布式旅行商问题(1)

热门文章

  1. pe系统下读不到服务器硬盘,WinPE系统里找不到硬盘怎么办 WinPE系统里找不到硬盘解决【详解】...
  2. matlab 音乐信号处理,基于matlab的音乐信号处理和分析.doc
  3. 详图讲解U盘安装windows8系统
  4. linux下kil命令l,linux/centos下使用kill命令的使用教程方法
  5. crypto-haystack(BSidesSF ctf 2020)
  6. Xilinx coe 与 Intel(Altera) mif 文件转化脚本
  7. 转:所谓美好,就是摆脱了功利之心
  8. 基金投资入门教程-----基金入门
  9. Tachibana Kanade Loves Review(克鲁斯卡尔 最小生成树)
  10. 计算机u盘 硬盘无法读取,U盘、移动硬盘盘符不显示及无法识别解决方法