MySQL從刪庫到跑路(6):子查詢

 “小夥子,今天你怎麼不開心?”

 “前輩,今天我看見了一個漂亮姑娘,淡黃色的長裙,蓬鬆的頭髮,她是那麼的漂亮,我是那麼的卑微……”

 “你是不是像知道那姑娘姓甚名誰,芳齡幾何,可否婚配,這樣即便是無法與她共結良緣,你也死而無憾!”
 “生我者父母,知我者前輩!”

 “”要解開你的這個心結,今天我們需要學習兩個知識點和一張新表。“

1.模糊匹配
2.子查詢
3.human_active_record(人類行爲記錄表)

首先,humanbase_info那張表,已經無法滿足你日益增長的物質文化需要了,因爲那裏面沒有記載穿着、髮型相關的信息,而這些信息恰好都記錄在human_active_record裏面

其次,因爲你只知道那位姑娘的部分特徵,所以我們只能按照那些部分特徵在human_active_record表裏面進行模糊匹配

最後,我們把human_active_record查詢的結果當做條件,放到human_base_info中當做查詢條件,就可以成功找到那位姑娘了

在這裏插入圖片描述
 這就是human_active_record記錄的信息,包括id_card(身份證唯一標識,事件發生時間,人物特徵,具體事件)。如果你想要找到的那個穿着淡黃色長裙,蓬鬆頭髮的妹子,你只需要用你已知的條件模糊搜索、匹配一番就可以了。

模糊匹配,like的通配符用法

1.%(百分號)

 %是SQL中最常用的一種方法,它表示任何字符出現的任意次數(0到無數次),因此如果想要找一個人的特徵有“淡黃色的長裙” 同時還有“蓬鬆的頭髮,”那麼就可以寫作 like ‘%淡黃色的長裙%蓬鬆的頭髮%’

 這樣寫的寫法就表示,不管你的特徵裏面是隻有“淡黃色的長裙” 、“蓬鬆的頭髮”,還是說特徵裏面含有其他的特徵,我的SQL都會把你一網打盡。

SELECT
	* 
FROM
	human_active_record 
WHERE
	feature LIKE '%淡黃色的長裙%蓬鬆的頭髮%'

在這裏插入圖片描述
 一共查詢出兩個人,從查詢結果來看,似乎並不能分辯兩個人裏面誰是李有爲遇見的那個。這個時候,就需要子查詢排上用場了。
子查詢:顧名思義就是查詢裏面的查詢。在一個查詢裏面使用另外一個查詢的結果,這個“另外一個查詢就是子查詢。”

原本,我要找到那個女孩的信息,我需要兩步,第一:從human_active_record裏面找打她對應的id_card,然後在用id_card去human_base_info表裏查詢對應的信息。

-- 1、先找id_crad
SELECT
	id_card 
FROM
	human_active_record 
WHERE
	feature LIKE '%淡黃色的長裙%蓬鬆的頭髮%'
--找到id_card結果 hx362423197509066370 hx362402198701270041
-- 然後再用對應的id_card去匹配信息
SELECT
	* 
FROM
	human_base_info 
WHERE
	id_card IN ( 
	'hx362423197509066370','hx362402198701270041'
	)

在這裏插入圖片描述
 以上SQL雖然能夠實現,但是未免有些麻煩,如果有了子查詢之後,一句SQL就可以搞定如下功能

子查詢

SELECT
	* 
FROM
	human_base_info 
WHERE
	id_card IN ( 
		SELECT
		id_card 
	FROM
		human_active_record 
	WHERE
		feature LIKE '%淡黃色的長裙%蓬鬆的頭髮%'
	)

在這裏插入圖片描述

總結:
1、子查詢的靈魂就是:把一個查詢的結果,當做另一個查詢的條件
2、子查詢的結果必須是單列,但凡是多列,肯定會報錯

 仔細比對了一下查詢出來的結果,李有爲回想了一下昨天的場面,那個妹子年齡應該二十出頭,各自在175左右,那個時候他們是在圖書館附近遇到的,所以李有爲立馬就鎖定了目標,原來昨天那個仙女一樣的妹子名叫“馮吹雨”."吹雨、吹雨"正是一個特別的名字啊。

"你給老子開錘子的小差,老子知識點都還沒講完,你是不是不想學了。"

 聽完大爺的訓斥,李有爲趕忙回過神來,繼續學習like 模糊匹配剩下的三種用法。

2、like之_(下劃線)

 "_"表示任意單個字符。匹配單個任意字符。李有爲對名字三個字,且最後一個字是“雨”女生情有獨鍾,因此要想找到這些女生,他只需要這麼做。

SELECT
	* 
FROM
	human_base_info 
WHERE
	name like '__雨'
and sex='F'

在這裏插入圖片描述

3、MySQL還有正則的模糊匹配,但是由於涉及到正則表達式,所以這裏暫時不說,以後再說。

裝逼試煉大會一天天逼近,大爺每天講解的指示雖然有用,可是似乎並不能幫助李有爲一鳴驚人,前路撲朔迷離,還有六天,前面究竟還有什麼神奇的事情在等着李有爲,預知後事如何,請聽下回分解。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章