中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

蒲江县| 天门市| 临高县| 无极县| 陆河县| 衡阳市| 许昌县| 福安市| 仙游县| 濉溪县| 长治市| 屯门区| 潍坊市| 东乌珠穆沁旗| 合肥市| 丰宁| 潢川县| 镇雄县| 六安市| 西峡县| 榕江县| 莎车县| 平谷区| 阳原县| 五河县| 包头市| 锡林浩特市| 阳东县| 临泉县| 遂昌县| 金塔县| 平利县| 杂多县| 靖西县| 绥滨县| 独山县| 吉安县| 宁陕县| 蚌埠市| 荣昌县| 乌苏市|