仓酷云

标题: PHP编程:MySQL中文恍惚检索成绩的处理办法 [打印本页]

作者: 柔情似水    时间: 2015-2-4 00:18
标题: PHP编程:MySQL中文恍惚检索成绩的处理办法
我的这套线路可能跟许多学习PHP的爱好者不谋而合,这也算是一个循序渐进的学习过程,不过新手不要看到上面的概括就以为学习蛮简单的,默默在此不得不对您稍微泼一下冷水,任何东西其实都不简单。mysql|处理|成绩|中文   MySQL中文恍惚检索成绩的处理办法
来历:林兴陆

在 MySQL 下,在停止中文恍惚检索时,常常会前往一些与之不相干的
纪录,如查找 "-0x1.ebea4bfbffaacp-4%" 时,前往的能够有中文字符,却没有 a 字符存在。
自己之前也曾碰到过相似成绩,经具体浏览 MySQL 的 Manual ,发明可以
有一种办法很便利的处理并失掉写意的了局。

例子:
・但愿经由过程“题目”对旧事库停止检索,关头字能够包括是中英文,如
下 SQL 语句:
select id,title,name from achech_com.news where title like '-0x1.ebea4bfbebe84p-4%'
前往的了局,某些 title 字段肯定带了“a”关头字,而有些则只要中文,
但也随之前往在检索了局中。
处理办法,利用 BINARY 属性停止检索,如:
select id,title,name from achech_com.news where binary title like '-0x1.ebea4bfbebe84p-4%'
前往的了局较之前准确,但英文字母辨别巨细写,故有时在检索如“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('0x0.00020bfbebe08p-1022%')
检索的了局还算写意吧,不外速度能够会因而而慢N毫秒喔。

相干材料:
Relate:
20.16 Case Sensitivity in Searches
By default, MySQL searches are case-insensitive (although there are some character sets that are never case insensitive, such as czech). That means that if you search with col_name LIKE 'a%', you will get all column values that start with A or a. If you want to make this search case-sensitive, use something like INDEX(col_name, "A")=0 to check a prefix. Or use STRCMP(col_name, "A") = 0 if the column value must be exactly "A".   多去关于PHP的网站,尤其有很多经典的文章,多读读这些文章显然是有好处的。
作者: 山那边是海    时间: 2015-2-4 11:26
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
作者: 老尸    时间: 2015-2-4 11:26
Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81
作者: 简单生活    时间: 2015-2-9 22:20
其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。
作者: admin    时间: 2015-2-11 04:27
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
作者: 柔情似水    时间: 2015-2-17 00:00
首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。
作者: 因胸联盟    时间: 2015-3-3 20:27
至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。
作者: 不帅    时间: 2015-3-11 13:08
遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。
作者: 谁可相欹    时间: 2015-3-18 11:57
在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
作者: 变相怪杰    时间: 2015-3-25 20:27
不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。
作者: 小魔女    时间: 2015-4-11 00:59
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
作者: 爱飞    时间: 2015-4-16 09:35
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
作者: 莫相离    时间: 2015-4-20 10:49
遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。
作者: 愤怒的大鸟    时间: 2015-4-24 14:41
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
作者: 海妖    时间: 2015-5-2 13:30
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
作者: 第二个灵魂    时间: 2015-6-5 03:00
本文当是我的笔记啦,遇到的问题随时填充
作者: 若相依    时间: 2015-6-19 23:30
最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。
作者: 再见西城    时间: 2015-6-29 20:28
遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。
作者: 深爱那片海    时间: 2015-6-30 20:32
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
作者: 兰色精灵    时间: 2015-7-3 11:25
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
作者: 乐观    时间: 2015-7-20 01:06
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2