- 两个参数至少有一个是
NULL
时,比较的结果也是NULL
,例外是使用<=>
对两个NULL
做比较时会返回1
,这两种情况都不需要做类型转换 - 两个参数都是字符串,会按照字符串来比较,不做类型转换
- 两个参数都是整数,按照整数来比较,不做类型转换
- 十六进制的值和非数字做比较时,会被当做二进制串
- 有一个参数是
TIMESTAMP
或DATETIME
,并且另外一个参数是常量,常量会被转换为TIMESTAMP
- 有一个参数是
DECIMAL
类型,如果另外一个参数是DECIMAL
或者整数,会将整数转换为DECIMAL
后进行比较,如果另外一个参数是浮点数,则会把DECIMAL
转换为浮点数进行比较 - 所有其他情况下,两个参数都会被转换为浮点数再进行比较