在mysql查詢中,當查詢條件左右兩側型別不匹配的時候會發生隱式轉換,可能導致查詢無法使用索引。下面分析兩種隱式轉換的情況
看表結構 phone為 int型別,name為 varchar
兩種情況都可以用到索引,這次等號右側是'2',注意帶單引號喲,左側的索引欄位是int型別,因此也會發生隱式轉換,但因為int型別的數字只有2能轉化為'2',是唯一確定的。所以雖然需要隱式轉換,但不影響使用索引,不會導致慢查詢
explain select * from user where name= '2'
這種情況也能使用索引,因為他們本身就是varchar 型別
explain select * from user where name= 2
因為等號兩側型別不一致,因此會發生隱式轉換,cast(index_filed as signed),然後和2進行比較。因為'2',' 2','2a'都會轉化成2,故mysql無法使用索引只能進行全表掃瞄,造成了慢查詢的產生。
mysql 關閉隱式轉換 Mysql中的隱式轉換
在mysql查詢中,當查詢條件左右兩側型別不匹配的時候會發生隱式轉換,可能導致查詢無法使用索引,下面分析兩種隱式轉換的情況看表結構phone為int型別,name為varchar型別 兩種情況都可以用到索引,這次等號右側是 2 注意帶單引號喲,左側的索引欄位是int型別,因此也會發生隱式轉換,但因為...
mysql日期隱式轉換 mysql中的隱式轉換
什麼隱式型別轉換?在mysql中 當操作符與不同型別的運算元一起使用時,會發生型別轉換以使運算元相容。則會發生轉換隱式 也就是說,mysql會根據需要自動將數字轉換為字串,將字串轉換數字。看到這個概念之後,是不是有一種茅塞頓開的感覺。哦.原來在資料結構中telephone欄位為字串 varchar ...
mysql中隱式轉換 了解MySQL的隱式轉化
在mysql中。當我們對不同型別的值進行比較的時候,為了使得這些數值 可比較 也可以稱為型別的相容性 mysql會做一些隱式轉化 implicit type conversion 那麼什麼是 隱式轉換 呢?讓我們一起來了解一下吧!當我們對不同型別的值進行比較的時候,為了使得這些數值 可比較 也可以稱...