我有 ID 为 1-100 的邮政编码。
以下查询返回计数 1,即使 where 子句中的 id 不存在:
SELECT COUNT(`id`) AS `Zipcode.count`
FROM `Zipcode`
WHERE `Zipcode`.`id` = "22a" LIMIT 1;
我相信这是因为“22a”在 MySQL 的幕后变成了简单的“22”。也许是因为 MySQL 会自动转换数据类型或其他什么?
以下提供了一个零计数(因此,如果 char “a” 在前面或在 int “22” 后面,它会有所不同):
SELECT COUNT(`id`) AS `Zipcode.count`
FROM `Zipcode`
WHERE `Zipcode`.`id` = "a22" LIMIT 1;
我希望此查询与字符串匹配。如果数据类型不正确,则不应删除字符,这会错误地为我提供不想要的答案。在这两种情况下,结果都应该为零。
我能做些什么?