标签: mysql
我需要搜索1234-abc之类的值。数据库没有此特定值,但具有另一个值1234。现在的问题是当我编写像
1234-abc
1234
SELECT * FROM words WHERE tval='1234-abc'
而不是获取空记录集,它取出1234值,它似乎忽略了-之后的任何内容,不知道发生了什么事情?
-
http://sqlfiddle.com/#!2/9de62/3
答案 0 :(得分:2)
您可以使用BINARY关键字进行完全匹配
BINARY
SELECT tval FROM words WHERE BINARY tval='1223-abc';
Binary是一个内置关键字,位于WHERE子句之后,强制对完全区分大小写的匹配进行比较
WHERE
Fiddle
答案 1 :(得分:1)
现有表达式隐式将字符串表达式转换为数字 - 您需要将数字显式转换为字符strng,如下所示:
SELECT tval FROM words WHERE convert(tval,char(20))='1223-1ABCDE';
SQLFiddle here。