形式:
where exists ( 任何子查詢 )
含義:
該子查詢如果「有數據結果」, 則該exists()的結果為「true」
該子查詢如果「沒有數據結果」,則該exists()的結果為「false」
特別注意:
1,該子查詢,如果其僅僅是為了得到「有沒有數據」的結果,則通常此時對主查詢就失去應用意義;
2,實際上,該子查詢,通常都需要在子查詢(內部)中來使用主查詢(外部)的某些欄位作為條件數據,這樣才能具有一定的實用意義。
其實,這種情況下的子查詢,對於mysql內部,是做了「內連接之後」的結果。
舉例1:
select * from product where exists(
select * from product_type
where product_type.protype_id = product.protype_id
and protype_name like '%碼%'
);
舉例2:
舉例3: