Mysql:intvalue ='1'和intvalue = 1之间的区别

时间:2011-01-15 15:58:00

标签: mysql integer equals

int列上,做...之间有区别吗。

SELECT .. int = '1'SELECT .. int = 1,哪个更受欢迎?

4 个答案:

答案 0 :(得分:3)

使用int = 1,因为int = '1'已内部转换为int = cast('1' as int)

答案 1 :(得分:1)

不是MySql专家,但我会说第一个(int = '1')会导致在比较之前将字符串转换为整数。

为了避免这种转换,我总是选择正确的数据类型。

此外,转换不能保证成功(或给出正确的结果)。

答案 2 :(得分:0)

一个区别是,如果您的查询的var可以为空,那么您将获得此

SELECT .... int = ''

SELECT .... int = 

最后一个是无效的SQL。第一个将给你所有空值(如果没有任何一个,可能没有)。虽然我同意如果有人说它应该在查询之前被捕获,那么它可能会对你产生影响:)

答案 3 :(得分:0)

第一个(int ='1')将字符串与整数进行比较(因此mysql会自动转换它) 秒一(int = 1)将整数与整数字段进行比较(不需要转换)。

所以第二个是首选