为什么用引号括起一个字段比不用它更长?

时间:2015-05-20 17:30:25

标签: mysql sql indexing key

例如,我有这个查询:

SELECT * FROM a WHERE field IN (-1, "1")

上述查询的执行时间比此查询长20倍。为什么呢?

SELECT * FROM a WHERE field IN (-1, 1)

此外,在第一种情况下,即使使用USE INDEX,也不会使用索引

1 个答案:

答案 0 :(得分:2)

很可能是因为MySQL正在将field转换为CHAR,而不是"1"转换为INT。

看看它运行了多长时间:

SELECT * FROM a WHERE field IN (-1, CAST("1" AS INT));