最近我试图查询这个
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一样忽略了之后的内容。查询中的数值。
答案 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