2012-03-19 53 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