这是myTable
----------------
|id|info1|info2|
----------------
|0 |abcde|fghij|
|1 |qwert|yuopa|
----------------
这是我打电话的查询:
SELECT * FROM `myTable` WHERE `id` = 'a'
并返回第一行
|0 |abcde|fghij|
发生了什么事?通常id
是一个整数,但我错误地将其键入字符串,但我仍然得到了结果。
答案 0 :(得分:1)
MySQL尝试将'a'
转换为整数。该字符串不包含任何数值,因此转换的结果为0
。这就是MySQL的投射方式。
SELECT 0 = 'a';
上述查询返回1
(TRUE)。
SELECT CAST('a' AS SIGNED INTEGER);
上述查询返回0
。