Mysql:intvalue=';1';和intvalue=1
在Mysql:intvalue=';1';和intvalue=1,mysql,integer,equals,Mysql,Integer,Equals,在int列上,执行之间是否有区别 选择。。int='1'和选择。。int=1,哪个是首选的?使用int=1,因为int='1'在内部转换为int=cast('1'为int)不是MySql专家,但我想说第一个(int='1')会导致在比较之前将字符串转换为整数 因此,为了避免这种转换,我总是选择正确的数据类型 此外,转换不能保证成功(或给出正确的结果)。一个区别是,如果您的查询有一个可以为空的var,您将得到这个值 SELECT .... int = '' 对 SELECT .... int =
int
列上,执行之间是否有区别
选择。。int='1'
和选择。。int=1
,哪个是首选的?使用int=1
,因为int='1'
在内部转换为int=cast('1'为int)
不是MySql专家,但我想说第一个(int='1'
)会导致在比较之前将字符串转换为整数
因此,为了避免这种转换,我总是选择正确的数据类型
此外,转换不能保证成功(或给出正确的结果)。一个区别是,如果您的查询有一个可以为空的var,您将得到这个值
SELECT .... int = ''
对
SELECT .... int =
最后一个是无效的SQL。第一个将为您提供所有空值(当然,如果并没有,可能什么也并没有)。虽然我同意如果有人说应该在查询之前捕获它,但这是一个不同的字节:)第一个(int='1')将字符串与整数进行比较(因此mysql会自动转换)
秒1(int=1)将整数与整数字段进行比较(无需转换)
所以第二个是首选的