下面是myTable的结构
----------------
|id|info1|info2|
----------------
|0 |abcde|fghij|
|1 |qwert|yuopa|
----------------下面是我调用的查询:
SELECT * FROM `myTable` WHERE `id` = 'a'并返回第一行,即
|0 |abcde|fghij|这是怎么回事?通常情况下,id是一个整数,但是,我错误地将其输入为字符串,但我仍然得到了结果。
发布于 2012-04-26 23:47:19
MySQL尝试将'a'转换为整数。该字符串不包含任何数值,因此强制转换的结果为0。这就是MySQL进行造型的方式。
SELECT 0 = 'a';上面的查询返回1 (TRUE)。
SELECT CAST('a' AS SIGNED INTEGER);上面的查询返回0。
https://stackoverflow.com/questions/10336859
复制相似问题