亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql如何實現隱式轉換

發布時間:2020-05-07 14:24:30 來源:億速云 閱讀:257 作者:三月 欄目:MySQL數據庫

本文主要給大家簡單講講mysql如何實現隱式轉換,相關專業術語大家可以上網查查或者找一些相關書籍補充一下,這里就不涉獵了,我們就直奔主題吧,希望mysql如何實現隱式轉換這篇文章可以給大家帶來一些實際幫助。

mysql如何實現隱式轉換
我們看上圖,yhtest 表,第三列為c、varchar 類型,表中4行數據,當我們使用select * from yhtest where c=0; 進行查詢的時候,有三個warning!
mysql如何實現隱式轉換
今天我們就從這三個warning 說起,后面的大部分內容可以解釋為啥會有這三個warnings!
轉換原則:當我們在使用where條件查詢的時候,字段類型和賦值類型不一致時,都將轉換成整型! 這樣一個描述其實是比較模糊的,下面我們具體來看。上圖中字段類型為varchar 字符串類型,但是查詢條件為c=0 ×××,需要將字段內容都轉換為整型,轉換方式為:
1)純字符串內容,則直接轉換為0  ‘abc’ 將直接被轉換為0
2)含有以數字開頭的字符串 ,則會進行截取處理,截取至不是數字的字符串為止,比如‘4abc’ 將 轉換為4    ,‘04abc’ 被轉換為‘04’ 但是這個在匹配c=4的時候,是會被匹配到的
mysql如何實現隱式轉換
3)如果是純數字字符串,那么將直接轉換為對應的×××,比如‘4’ 將直接轉換為4
4)以字符開頭,數字結尾的,還是將轉換為0
這樣我們再看開頭所報出的warnings ,頓時覺得合理了

很多sql優化的文章中強調:字符串一定記得在where條件中加引號,原因也正是在這里,下面我們看例子
mysql如何實現隱式轉換
執行 select  from  yhtest  where c=4 的結果和執行計劃如下:
mysql如何實現隱式轉換
執行select  from  yhtest  where c='4' 結果和執行計劃如下:
mysql如何實現隱式轉換
通過執行計劃我們看到,第一種where條件后面字段類型 和賦值類型不一致,隱式轉換,也沒有用到c列上的索引。第二種不存在隱式轉換,使用了c列的索引,二者的查詢結果也不一樣!
上述隱式轉換,大部分時候,我們需要用來避免隱式轉換帶來的不走索引,全表掃描,帶來的sql性能問題,但是在數據少的時候,我們可以用來做一些特別操作,比如讓'abcdefg'=0?

mysql如何實現隱式轉換就先給大家講到這里,對于其它相關問題大家想要了解的可以持續關注我們的行業資訊。我們的板塊內容每天都會捕捉一些行業新聞及專業知識分享給大家的。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

灯塔市| 阳山县| 株洲市| 东至县| 神池县| 光泽县| 溧阳市| 枣阳市| 麻阳| 黑龙江省| 页游| 四子王旗| 陆丰市| 天等县| 德保县| 张家界市| 琼结县| 平乐县| 香格里拉县| 龙南县| 县级市| 五指山市| 台江县| 蒙城县| 丽水市| 双柏县| 安岳县| 五常市| 永清县| 广饶县| 庄河市| 桂阳县| 红桥区| 岱山县| 易门县| 涞水县| 万年县| 河源市| 米泉市| 龙胜| 长岭县|