tft每日頭條

 > 生活

 > 數據庫mysql if exists用法

數據庫mysql if exists用法

生活 更新时间:2024-12-27 18:47:49

數據庫mysql if exists用法(MySQL關于IN和EXISTS比較讀完之後)1

1.exist,not exist一般都是與子查詢一起使用. In可以與子查詢一起使用,也可以直接in (a,b.....)。

2.exist會針對子查詢的表使用索引. not exist會對主子查詢都會使用索引. in與子查詢一起使用的時候,隻能針對主查詢使用索引. not in則不會使用任何索引. 注意,一直以來認為exists比in效率高的說法是不準确的。

in 是把外表和内表作hash 連接,而exists是對外表作loop循環,每次loop循環再對内表進行查詢。

IN 其實與等于相似,比如in(1,2) 就是 = 1 or = 2的一種簡單寫法,所以一般在元素少的時候使用IN,如果多的話就用exists

exists的用法跟in不一樣,一般都需要和子表進行關聯,而且關聯時,需要用索引,這樣就可以加快速度。

IN

确定給定的值是否與子查詢或列表中的值相匹配。

EXISTS

指定一個子查詢,檢測行的存在。

比較使用 EXISTS 和 IN 的查詢

exists()後面的子查詢被稱做相關子查詢 他是不返回列表的值的.隻是返回一個ture或false的結果,其運行方式是先運行主查詢一次 再去子查詢裡查詢與其對應的結果 如果是ture則輸出,反之則不輸出.再根據主查詢中的每一行去子查詢裡去查詢.

in()後面的子查詢 是返回結果集的,換句話說執行次序和exists()不一樣.子查詢先産生結果集,然後主查詢再去結果集裡去找符合要求的字段列表去.符合要求的輸出,反之則不輸出.

關注

感謝閱讀,如果這篇文章幫助了您,歡迎 點贊收藏,關注轉發 喲。您的幫助是我們前行的動力,我們會提供更多有價值的内容給大家... 謝謝!

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved