乐趣区

关于mysql:筛选条件查询

通常咱们保留一个实体,这个实体可能有多个属性或者特色,比方咱们在应用搜寻性能的时候,会有一些关键词或者特色,随着咱们抉择的关键词越多,后果集会越来越少,如果存储的是这个一个简略模型(失常理论构造要比这个简单很多,这里只是为了阐明需要)

元素(item) 属性(attr)
1 a
2 a
3 a
1 b
2 b
1 c
3 c

我想查问同时领有属性 a b 的元素
冀望失去如下的后果

item
1
2

能够应用 having 关键字
select item [table_name] where attr in (a,b) group by item having count(item) =2

如果要查问同时领有 a b c 属性的元素
冀望失去的后果是

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 子句能够让咱们筛选分组后的各组数据

退出移动版