關於MySQL隱式轉換

2022-09-09 02:06:09 字數 1160 閱讀 2185

一、如果表定義的是varchar欄位,傳入的是數字,則會發生隱式轉換。

1、表ddl

2、傳int的sql

3、傳字串的sql

仔細看下表結構,rid的字段型別: 

而使用者傳入的是int,這裡會有乙個隱式轉換的問題,隱式轉換會導致全表掃瞄。

把輸入改成字串型別,執行計畫如下,這樣就會很快了。

此外,還需要注意的是:

數字型別的0001等價於1

字串的0001和1不等價

二、如果表定義的是int欄位,傳入的是字串,在不超過int範圍內,不會發生隱式轉換,如果超出範圍並且比較大小(以字串型別比較'$')會隱式轉換。

1、表ddl

2、不超範圍傳字串的sql

3、不超範圍傳數字的sql

4、超出範圍傳字串的sql

5、超出範圍傳數字的sql

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...