一般咱們保存一個實體,這個實體可能有多個屬性或者特徵,好比咱們在使用搜索功能的時候,會有一些關鍵詞或者特徵,隨着咱們選擇的關鍵詞越多,結果集會愈來愈少,假如存儲的是這個一個簡單模型(正常實際結構要比這個複雜不少,這裏只是爲了說明需求)sql
元素(item) | 屬性(attr) |
---|---|
1 | a |
2 | a |
3 | a |
1 | b |
2 | b |
1 | c |
3 | c |
我想查詢同時擁有屬性a b的元素
指望獲得以下的結果it
item |
---|
1 |
2 |
能夠使用having關鍵字
select item [table_name] where attr in (a,b) group by item having count(item) =2table
若是要查詢同時擁有a b c 屬性的元素
指望獲得的結果是select
item |
---|
1 |
同理sql是
select item [table_name] where attr in (a,b,c) group by item having count(item) =3搜索
若是但願查詢至少擁有a b c三個屬性中的兩個
指望獲得的結果是數據
item |
---|
1 |
2 |
3 |
sql以下
select item [table_name] where attr in (a,b,c) group by item having count(item) >=2查詢
注: HAVING 子句能夠讓咱們篩選分組後的各組數據tab