SkuId` varchar(32) NOT NULL COMMENT 'SkuId',mysql
`SkuId` bigint(32) NOT NULL COMMENT 'SkuId',sql
根據以上現象咱們能夠看出當數據庫字段爲int類型的時候,入參類型不管是字符串仍是int,都可以命中索引;數據庫
當數據庫字段類型爲varchar類型的時候,入參類型必須爲varchar類型,纔可以命中索引;索引
查了下mysql相關的資料,介紹以下:字符串
mysql在比較值的時候,若是兩邊值的類型不匹配,那麼就會進行隱式類型轉換(轉化成浮點類型);im
總結以下: 當等式兩邊類型不一致的時候,都會被轉換爲浮點數再進行比較。總結
當等式左邊varchar類型轉化成浮點類型的時候,不會命中索引;數據
當等式左邊是浮點類型的時候,右邊類型轉化不轉化都可以命中索引;img