2014-11-03 75 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