2012-03-19 20 views
0

這個查詢任何回報:我無法在文本字段中搜索數據與連字符的字符

SELECT * FROM rates WHERE inks = "4/0 - [CMYK]" 

但是這一個:

SELECT * FROM rates WHERE inks = "4/0 " + CHAR(150) + " [CMYK]" 

或者這一個:

SELECT * FROM rates WHERE inks LIKE "4/0 % [CMYK]" 

返回上百條記錄。無論我使用單引號還是雙引號。

爲什麼?我花了幾個小時做了不同的測試,但我無法得到一個合理的解釋。

回答

0

您可能在第一個示例中使用了錯誤的連字符。

例如,(Windows-1252中的150)和(151)之間存在差異。

也可能是您的輸入數據是UTF-8編碼的,在這種情況下連字符也不匹配。

+0

表如何爲UTF-8的默認排序規則,引擎InnoDB的。 – Juanmi 2012-03-19 16:25:02

0

你可以這樣做:

SELECT * FROM rates WHERE inks LIKE "%-%"; 

它沒有回答爲什麼,但^^

+0

此查詢可以工作,所以問題不在於炒作。我用鍵盤寫的這些宣傳是正確的。 – Juanmi 2012-03-19 16:24:10