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)将整数与整数字段进行比较(无需转换)

所以第二个是首选的