1. 程式人生 > >MySQL中0、'0'作為條件時的區別

MySQL中0、'0'作為條件時的區別

情況 所有 rom 字段 tab arc mys nbsp 結果

一、現象:

今天查詢時,某字段x為varchar

可能的值為A B C 0 1 2 3 4

想把0 1 2 3 4的所有數據查出,使用的SQL為

select * from table where x in (0,1,2,3,4)

結果發現,會把所有數據都查出

但是,使用

select * from table where x in (‘0‘,1,2,3,4)

查出數據即為正常數據

二、原因:

經查閱,默認情況下,MySQL會盡量進行類型轉換

所以,當字符串轉為整數時,如A、B、C這種值會轉換失敗,則返回0,所以符合查詢條件

MySQL中0、'0'作為條件時的區別