mysql select numeric是错误的,忽略了数值后的内容

时间:2014-10-23 19:23:28

标签: mysql

最近我试图查询这个

SELECT * FROM `posts`  WHERE `id` = '1a6' ORDER BY `date_created` DESC

但是mysql返回ID = 1的行,它将其视为

SELECT * FROM `posts`  WHERE `id` = '1' ORDER BY `date_created` DESC

我试图检查没有找到的项目,但显然mysql返回该行是错误的。

ID是主要的和AI,所以解决方案是使查询只对引用的内容进行严格处理,它就像mysql一样忽略了之后的内容。查询中的数值。

3 个答案:

答案 0 :(得分:1)

如果ID是自动增量(“AI”),那么它必须是数字。您不应该将其值引用为字符串。但是,如果1a6应该是十六进制文字,那么你省略了前导X

WHERE `ID` = X'1a6'

答案 1 :(得分:0)

尝试使用" LIKE"运营商...

SELECT * FROM `posts`  WHERE `id` LIKE '1a6' ORDER BY `date_created` DESC

答案 2 :(得分:0)

SELECT * FROM posts WHERE id LIKE'1%'ORDER BY date_created DESC