快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

和记app官网_机器人论坛



在 MySQL下,在进行中文隐隐检索时,常常会返回一些与之不相关的记录,如查找 "%a%" 时,返回的可能有中翰墨符,却没有a字符存在。本人曩昔也曾碰到过类似问题,经具体涉猎MySQL的Manual,发明可以有一种措施很方便的办理并获得知足的结果。

例子:

盼望经由过程“标题”对新闻库进行检索,关键字可能包孕是中英文,如下SQL语句:

QUOTE:

select id,title,name from achech_com.news where title like '%a和记app官网%'

返回的结果,某些title字段确定带了“a”关键字,而有些则只有中文,但也随之返回和记app官网在检索结果中。

办理措施,应用 BINARY 属性进行检索,如:

QUOTE:

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

返回的结果较之前精确,但英翰墨母区分大年夜小写,故无意偶尔在检索如“Achech”及“achech”的结果是不一样的。知道了应用 BINARY 属性可以办理前面这和记app官网个问题,再看看 MySQL 支持的UCASE 及 CONCAT 函数,此中 UCASE 是将英文整个转成大年夜写,而CONCAT函数的感化是对字符进行连接,以下是我们完全办理后的SQL 语句:

QUOTE:

select id,title,name from achech_com.news

where binary ucase(title和记app官网) like concat('%',ucase('a'),'%')

检索的步骤是先将属性指定为 BINARY ,以正确检索结果,而被 like 的 title内容存在大年夜小写字母的可能,故先应用 ucase 函数将字段内容整个转换成大年夜写字母,然后再进行 like 操作,而 like 的操作应用隐隐措施,应用 concat的好处是传进来的可所以直接的关键字,不必要带“%”万用符,将“'a'”直接换成你的变量,在任何说话下都万事无忧了。 当然你也可以这么写:

QUOTE:

select id,title,name from achech_com.new和记app官网s where binary ucase(title) like ucase('%a%')

检索的结果还算知足吧,不过速率可能会是以而慢N毫秒。

您可能还会对下面的文章感兴趣: