仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 883|回复: 8
打印 上一主题 下一主题

[学习教程] MYSQL网页设计MySQL中文含混检索成绩办理办法

[复制链接]
灵魂腐蚀 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:16:11 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
尽管MySQL也有一个认证培训项目,但是它的培训却要比Oracle或MS-SQL相差很远。尽管有的使用MySQL的用户表示,MySQL很容易上手,但是对于具有企业级数据库需求的用户来说,</p>  在MySQL下,在举行中文含混检索时,常常会前往一些与之不相干的纪录,如查找"%a%"时,前往的大概有中笔墨符,却没有a字符存在。自己之前也曾碰到过相似成绩,经具体浏览MySQL的Manual,发明能够有一种办法很便利的办理并失掉中意的了局。
  例子:
  但愿经由过程“题目”对旧事库举行检索,关头字大概包括是中英文,以下SQL语句:
  QUOTE:
  selectid,title,namefromachech_com.newswheretitlelike%a%
  前往的了局,某些title字段断定带了“a”关头字,而有些则只要中文,但也随之前往在检索了局中。
  办理办法,利用BINARY属性举行检索,如:
  QUOTE:
  selectid,title,namefromachech_com.newswherebinarytitlelike%a%
  前往的了局较之前准确,但英笔墨母辨别巨细写,故偶然在检索如“Achech”及“achech”的了局是纷歧样的。晓得了利用BINARY属性能够办理后面这个成绩,再看看MySQL撑持的UCASE及CONCAT函数,个中UCASE是将英文全体转成年夜写,而CONCAT函数的感化是对字符举行毗连,以下是我们完整办理后的SQL语句:
  QUOTE:
  selectid,title,namefromachech_com.news
  wherebinaryucase(title)likeconcat(%,ucase(a),%)
  检索的步骤是先将属性指定为BINARY,以准确检索了局,而被like的title内容存在巨细写字母的大概,故先利用ucase函数将字段内容全体转换成年夜写字母,然后再举行like操纵,而like的操纵利用含混办法,利用concat的优点是传出去的能够是间接的关头字,不必要带“%”万用符,将“a”间接换成你的变量,在任何言语下都万事无忧了。固然你也能够这么写:
  QUOTE:
  selectid,title,namefromachech_com.newswherebinaryucase(title)likeucase(%a%)
  检索的了局还算中意吧,不外速率大概会因而而慢N毫秒。
DBaaS解决方案可以降低首次投入成本,对于那些小企业来说,他们往往认为内部部署的数据库成本太高,DBaaS的成本和灵活性优势对小企业吸引力更大,他们是云数据库解决方案的重点客户群体。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-18 08:49

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表