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的网站,尤其有很多经典的文章,多读读这些文章显然是有好处的。 其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎 Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81 其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。 微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox支持的不是很好,所以能少用还是少用的好。 首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。 至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。 遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。 在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。 不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。 环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。 ,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。 遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。 要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。 这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己 本文当是我的笔记啦,遇到的问题随时填充 最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。 遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。 我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能: 这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
页:
[1]
2