2014-11-03 44 views
0

我在我的MySQL数据库中有一个带有utf8_general_ci排序规则的varchar字段的表。我的问题是,当我在PHP中执行像MySQL搜索非ASCII字符不按预期的方式工作

SELECT title FROM node WHERE title LIKE "%ñ%" 

这样的查询时,它将返回所有其中包含“n”和“ñ”的标题。我试图从终端在Linux做同样的查询,我没有得到任何结果。我不知道它是否来自终端缺乏unicode支持。

如何过滤我的查询以显示包含具有我想要的确切字符的表达式的结果?它是一个PHP的MySQL传输问题?我有PHP 5.3和MySQL 5.1。

PS:

我知道

SELECT title FROM node WHERE title LIKE "%n%" 

返回相同的结果( “n” 和 “N”)为上面的查询,我不介意。我只是希望能够使用匹配的unicode charcat来过滤表达式。

回答

1

默认情况下,MySQL试图通过等同处理的等效字符来获得帮助。这包括字符上的重音符号。有一部分documentation致力于此。

尝试使用binary操作:

SELECT title FROM node WHERE title LIKE BINARY '%ñ%' 
+0

我有一种感觉'BINARY'将开始发挥作用。 – 2014-11-03 17:02:17

+0

谢谢,我工作:) – DarthRevan13 2014-11-06 13:10:17

相关问题