在int
列上,做...之间有区别吗。
SELECT .. int = '1'
和SELECT .. int = 1
,哪个更受欢迎?
答案 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)将整数与整数字段进行比较(不需要转换)。
所以第二个是首选