mysql 關閉隱式轉換 Mysql中的隱式轉換

2021-10-18 10:02:06 字數 797 閱讀 6121

在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隱式轉換

定義 當操作符與不同型別的運算元一起使用時,會發生型別轉換以使運算元相容。則會發生轉換隱式 舉乙個常見例子 1 我們先建立乙個表,有關手機號查詢 create table user id int 11 not null primary keyauto increment phone varchar ...

mysql隱式轉換

create table testsql id int 11 name varchar 11 descid varchar 11 alter table testsql add index descid alter table testsql add unique id insert into te...