[基操篇]mysql:你以為你想要的就是你以為的么?

<p><span/></p><p><span>接上篇</span></p><p><span>1勤家、熟悉下這個表結(jié)構(gòu)</span></p><blockquote><p><span>CREATE TABLE t_user ( </span></p><p> id int(10) unsigned NOT NULL AUTO_INCREMENT,</p><p> name varchar(60) DEFAULT NULL, </p><p> age int(4) DEFAULT NULL, </p><p> sex tinyint(2) DEFAULT NULL,</p><p> like varchar(255) DEFAULT NULL, PRIMARY KEY (id), </p><p> KEY idx_name_age_like (name,age,like)</p><p> ) ENGINE=InnoDB AUTO_INCREMENT=1000000 DEFAULT CHARSET=utf8;
</p></blockquote><p>
</p><p><span>2抵卫、查看數(shù)據(jù)</span></p><blockquote><p><span>select * from t_user;</span></p></blockquote><p>
</p><p><span/></p><p/><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/8965049-e94b1dc03b5f341a.jpg" img-data="{"format":"jpeg","size":36011,"height":470,"width":910}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><p><span/></p><p><span>3、先來看這個sql結(jié)果</span></p><blockquote><p><span>select * from t_user where name = 0;</span></p></blockquote><p>
</p><p><span>看下面明明name的值沒有為0的 但是卻能查詢出來這么多數(shù)據(jù)</span></p><p/><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/8965049-53c387ff879a4e8b.jpg" img-data="{"format":"jpeg","size":36396,"height":470,"width":910}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><p><span/></p><p><span>4抒巢、再來看下這個sql</span></p><blockquote><p><span>select * from t_user where name = 1;</span></p></blockquote><p>
</p><p><span>那么name明明是varchar類型的 并且值是1user 為什么會能查到呢贫贝?</span></p><p/><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/8965049-0883249accd1ea3b.jpg" img-data="{"format":"jpeg","size":3892,"height":68,"width":956}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><p><span/></p><blockquote><p><span>EXPLAIN select * from t_user where name = 1;</span></p></blockquote><p>
</p><p><span>而且name明明是有索引的為什么會全表掃描呢?</span></p><p/><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/8965049-4f316cc6cfa0288d.jpg" img-data="{"format":"jpeg","size":12120,"height":86,"width":956}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><p><span/></p><p><span/></p><p><span>5蛉谜、再來看下這個sql</span></p><blockquote><p><span>select * from t_user where age ='a0';</span></p></blockquote><p>
</p><p><span>age是 int類型的 為什么a0 也能搜到</span></p><p/><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/8965049-82f4d7fe64c3e0cf.jpg" img-data="{"format":"jpeg","size":3892,"height":79,"width":956}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><p><span/></p><p><span/></p><blockquote><p><span>select * from t_user where age ='a1';</span></p></blockquote><p>
</p><p><span>為什么a0能搜到 a1卻搜不到呢</span></p><p/><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/8965049-cf68257c758a1880.jpg" img-data="{"format":"jpeg","size":3892,"height":71,"width":956}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><p><span/></p><p><span/></p><p><span/></p><p><span>到了這里大家應(yīng)該都發(fā)現(xiàn)問題了稚晚,</span><span>在mysql查詢中,當查詢條件左右兩側(cè)類型不匹配的時候會發(fā)生隱式轉(zhuǎn)換cast(index_filed as signed) </span></p><blockquote><p><span>select cast('1a' as signed),cast('a1' as signed),cast('1' as signed);</span></p></blockquote><p>
</p><p><span/></p><p/><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/8965049-a41be3f77595cabd.jpg" img-data="{"format":"jpeg","size":5257,"height":86,"width":956}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><p><span/></p><p><span/></p><p/><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/8965049-7743281366a093bf.jpg" img-data="{"format":"jpeg","size":57966,"height":355,"width":837}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><p><span/></p><p><span/></p><blockquote><p><span>select 11 + '11', 11 + 'aa', 'a1' + 'bb', 11 + '0.01a';</span></p></blockquote><p>
</p><p><span/></p><p/><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/8965049-afb2d8aae9aa5e69.jpg" img-data="{"format":"jpeg","size":4808,"height":85,"width":956}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><p><span/></p><p><span/></p><blockquote><p><span>show warnings;</span></p></blockquote><p>
</p><p><span/></p><p/><div class="image-package"><img src="https://upload-images.jianshu.io/upload_images/8965049-2f03499b4b6ae357.jpg" img-data="{"format":"jpeg","size":18151,"height":178,"width":956}" class="uploaded-img" style="min-height:200px;min-width:200px;" width="auto" height="auto"/>
</div><p><span/></p><p><span>11 + 'aa'型诚,由于操作符兩邊的類型不一樣且符合第g條客燕,aa要被轉(zhuǎn)換成浮點型小數(shù),然而轉(zhuǎn)換失斦帷(字母被截斷)也搓,可以認為轉(zhuǎn)成了 0,整數(shù)11被轉(zhuǎn)成浮點型還是它自己暮现,所以11 + 'aa' = 11还绘。</span></p><p><span/></p><p><span>0.01a轉(zhuǎn)成double型也是被截斷成0.01,所以11 + '0.01a' = 11.01栖袋。</span></p><p><span/></p><p><span/></p><p><span/></p>

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末拍顷,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子塘幅,更是在濱河造成了極大的恐慌昔案,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件电媳,死亡現(xiàn)場離奇詭異踏揣,居然都是意外死亡,警方通過查閱死者的電腦和手機匾乓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門捞稿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事娱局≌煤ィ” “怎么了?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵衰齐,是天一觀的道長任斋。 經(jīng)常有香客問我,道長耻涛,這世上最難降的妖魔是什么废酷? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮抹缕,結(jié)果婚禮上澈蟆,老公的妹妹穿的比我還像新娘。我一直安慰自己歉嗓,他們只是感情好丰介,可當我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布背蟆。 她就那樣靜靜地躺著鉴分,像睡著了一般。 火紅的嫁衣襯著肌膚如雪带膀。 梳的紋絲不亂的頭發(fā)上志珍,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天,我揣著相機與錄音垛叨,去河邊找鬼伦糯。 笑死,一個胖子當著我的面吹牛嗽元,可吹牛的內(nèi)容都是我干的敛纲。 我是一名探鬼主播,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼剂癌,長吁一口氣:“原來是場噩夢啊……” “哼淤翔!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起佩谷,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤旁壮,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后谐檀,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體抡谐,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年桐猬,在試婚紗的時候發(fā)現(xiàn)自己被綠了麦撵。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖免胃,靈堂內(nèi)的尸體忽然破棺而出五垮,到底是詐尸還是另有隱情,我是刑警寧澤杜秸,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布放仗,位于F島的核電站,受9級特大地震影響撬碟,放射性物質(zhì)發(fā)生泄漏诞挨。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一呢蛤、第九天 我趴在偏房一處隱蔽的房頂上張望惶傻。 院中可真熱鬧,春花似錦其障、人聲如沸银室。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蜈敢。三九已至,卻和暖如春汽抚,著一層夾襖步出監(jiān)牢的瞬間抓狭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工造烁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留否过,地道東北人。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓惭蟋,卻偏偏與公主長得像苗桂,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子告组,可洞房花燭夜當晚...
    茶點故事閱讀 44,960評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 參考資料:極客時間《MySQL實戰(zhàn)45講》 1 基礎(chǔ)架構(gòu) 存儲引擎層負責數(shù)據(jù)的存儲和提取煤伟。其架構(gòu)模式是插件式的,支...
    IM后海大鯊魚閱讀 698評論 0 0
  • pyspark.sql模塊 模塊上下文 Spark SQL和DataFrames的重要類: pyspark.sql...
    mpro閱讀 9,456評論 0 13
  • 一、概要 索引就像一本書的目錄氨肌。而當用戶通過索引查找數(shù)據(jù)時鸿秆,就好比用戶通過目錄查詢某章節(jié)的某個知識點。這樣就幫助用...
    唯老閱讀 461評論 0 1
  • mysql基礎(chǔ) mysql邏輯架構(gòu) 1.連接層:與客戶端進行連接的服務(wù)怎囚,主要完成一些類似連接處理,授權(quán)認證 及相關(guān)...
    昵稱已使用換一個吧閱讀 468評論 0 0
  • 一卿叽、安裝及配置 二桥胞、基礎(chǔ)操作 三、MySQL開發(fā)規(guī)范總結(jié) (一)考婴、設(shè)計規(guī)范 【推薦】字段允許適當冗余贩虾,以提高查詢性...
    鄉(xiāng)下程序員閱讀 117評論 0 0