1、筛选某个属性 多个值都满足的用户列表sql。
在数据库表中有一个字段,这个字段可以有多个值,关系为“或”的关系并且以多条记录存在于表中。在查询这样的记录时如果是简单的查询会出现多条查询结果,而业务上需要只显示为一条记录。这是一个难题,不过在也sql中也是可以解决的。示例:user_id为要查的字段,以attr_type_id 、attr_value_id为条件,attr_value_id 存在多个值,要使得查询结果显示为一条记录。sql语句如下。
-- 查询属性类型为type1 并且属性值 '1', '2', '3'这三个都满足的用户。
SELECT
user_id
FROM
user_attr_value
WHERE
attr_type_id ='type1'
AND
attr_value_id IN ( '1', '2', '3' )
GROUP BY
user_id
HAVING
count( user_id) = 3;