3

我需要搜索一个像1234-abc. 数据库没有这个特定的值,但有另一个值1234。现在的问题是当我写我的查询时

SELECT * FROM words WHERE tval='1234-abc'

它不是获取空记录集,而是获取1234值,它似乎忽略了 之后的-任何内容,知道发生了什么吗?

http://sqlfiddle.com/#!2/9de62/3

4

2 回答 2

2

您可以使用BINARY关键字进行完全匹配

 SELECT tval FROM words WHERE BINARY  tval='1223-abc';

Binary是一个内置关键字,在您的WHERE子句之后强制进行比较以进行精确区分大小写的匹配

小提琴

于 2013-08-05T06:48:56.937 回答
1

现有表达式将字符串表达式隐式转换为数字 - 您需要将数字显式转换为字符 strng,如下所示:

SELECT tval FROM words WHERE convert(tval,char(20))='1223-1ABCDE';

SQLFiddle在这里

于 2013-08-05T06:47:59.957 回答