規則: 1、兩個參數至少有一個是 NULL 時,比較的結果也是 NULL,例外是使用 <=> 對兩個 NULL 做比較時會返回 1,這兩種情況都不需要做類型轉換2、兩個參數都是字元串,會按照字元串來比較,不做類型轉換3、兩個參數都是整數,按照整數來比較,不做類型轉換4、十六進位的值和非數字做比較時, ...
規則:
1、兩個參數至少有一個是 NULL 時,比較的結果也是 NULL,例外是使用 <=> 對兩個 NULL 做比較時會返回 1,這兩種情況都不需要做類型轉換
2、兩個參數都是字元串,會按照字元串來比較,不做類型轉換
3、兩個參數都是整數,按照整數來比較,不做類型轉換
4、十六進位的值和非數字做比較時,會被當做二進位串
5、有一個參數是 TIMESTAMP 或 DATETIME,並且另外一個參數是常量,常量會被轉換為 timestamp
6、有一個參數是 decimal 類型,如果另外一個參數是 decimal 或者整數,會將整數轉換為 decimal 後進行比較,如果另外一個參數是浮點數,則會把 decimal 轉換為浮點數進行比較
7、所有其他情況下,兩個參數都會被轉換為浮點數再進行比較
踩坑:
1、比如字元串和數字對比都會轉化成double,string 轉化成 double時 會出現精度丟失 ,超過16位就不准了