在where子句中使用 - (破折号)简单选择问题

时间:2013-08-05 06:10:17

标签: mysql

我需要搜索1234-abc之类的值。数据库没有此特定值,但具有另一个值1234。现在的问题是当我编写像

这样的查询时
SELECT * FROM words WHERE tval='1234-abc'

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

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

2 个答案:

答案 0 :(得分:2)

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

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

Binary是一个内置关键字,位于WHERE子句之后,强制对完全区分大小写的匹配进行比较

Fiddle

答案 1 :(得分:1)

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

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

SQLFiddle here