Mysql子查詢關鍵字的使用方式(exists)

1. all

1.1 格式

1.2 特點 

  • all:與子查詢返回的所有值比較為true則返回true
  • all可以與=,>=,>,<,<=,<>結合使用,分別表示等於,大於等於,大於,小於,小於等於,不等於其中的所有數據
  • 大於all表示指定列中的值必須要大於子查詢集中的每一個值,即必須要大於子查詢集的最大值;如果是小於即小於子查詢中的最小值。

1.3 操作

2. any(some)

1.1 格式

1.2 特點

  • any:與子查詢返回的所有值比較為true則返回true
  • any可以與=,>=,>,<,<=,<>結合使用,分別表示等於,大於等於,大於,小於,小於等於,不等於其中的任何一個數據
  • 大於any表示指定列中的值必須要大於子查詢集中的任何一個值,即必須要大於子查詢集的最小值;其他同理
  • some可以理解為any的別名

1.3 操作

3. in

1.1 格式

1.2 特點

  • in用於判斷某個記錄的值,是否在指定的集合中
  • 在in關鍵字前邊加上not可以將條件反過來

1.3 操作

4. exist

1.1 格式

1.2 特點

  • 該子查詢如果“有數據結果”(至少返回一行數據),則該EXISTS()結果為:true,外層查詢執行
  • 該子查詢如果“沒有數據結果”(沒有任何數據返回),則該EXISTS()結果為:false,外層查詢不執行
  • EXISTS後面的子查詢不返回任何實際數據,隻返回真或假,當返回真時where條件成立
  • 註意:EXISTS關鍵字,比IN關鍵字的運算效率高,因此,在實際開發中,特別是大數據量時,推薦使用EXISTS關鍵字

1.3 操作

1.4 解釋

外層查詢進行查詢時,外層查詢會一行一行執行,第一行執行時,判斷子查詢是否為true,為true則此行數據被查出,接著第二行查詢。。。以此往復。

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: