将字符ñ输入搜索时,它将从数据库中检索所有行

时间:2014-10-30 03:58:47

标签: php mysql laravel-4

我对我的laravel项目进行了简单的搜索,当我在其中输入字符“ñ”并提交搜索时,将检索表中的所有行。

查询很简单,它只使用一个:where('title','LIKE',“%$ search_criteria%”)

我的数据库是utf8_unicode_ci

为什么会这样?

1 个答案:

答案 0 :(得分:0)

utf8_general_ci排序规则不区分大小写且不区分重音,因此您的查询将返回包含字母'n',大写或小写,重音或不重音的所有行。有关排序规则如何影响搜索和比较,请参阅http://dev.mysql.com/doc/refman/5.6/en/charset-collation-effect.html

您可以通过在SQL语句末尾添加“COLLATION new_collat​​ion”来更改给定SQL语句的排序规则。所以这对你有用:

SELECT * FROM table WHERE title LIKE '%ñ%' COLLATION utf8_bin;