MySQL获取其中一个字段属于数组的所有行,并且所有成员在另一个字段中都有一个公共值
假设我有以下用户属性表:MySQL获取其中一个字段属于数组的所有行,并且所有成员在另一个字段中都有一个公共值,mysql,sql,Mysql,Sql,假设我有以下用户属性表: id, user_id properties 1, NULL, prop_ss1 2, NULL, prop_ss2 3, 2, prop_1 4, 2, prop_2 5, 3, prop_1 6, 3, prop_2 7, 3, prop_3 8, 4, prop_1 给定一个user_id数组,如何获取所有属性的列表,这些属性要么是user_id为NULL(如果
id, user_id properties
1, NULL, prop_ss1
2, NULL, prop_ss2
3, 2, prop_1
4, 2, prop_2
5, 3, prop_1
6, 3, prop_2
7, 3, prop_3
8, 4, prop_1
给定一个user_id数组,如何获取所有属性的列表,这些属性要么是user_id为NULL(如果愿意,可以称之为全局属性),要么是在给定数组中的所有user_id之间共享的
例如,给定一个数组(2,3),我想得到:
prop_ss1
prop_ss2
prop_1
prop_2
prop_ss1
prop_ss2
prop_1
或者,给定一个数组(2,3,4),我想得到:
prop_ss1
prop_ss2
prop_1
prop_2
prop_ss1
prop_ss2
prop_1
尝试合并两个单独的查询:
SELECT properties FROM your_table WHERE user_id IS NULL
UNION
SELECT properties
FROM your_table
WHERE user_id IN (2, 3)
GROUP BY properties
HAVING COUNT(DISTINCT user_id) = 2
在线查看它的工作情况:
最后一行中的数字2
是您正在查询的用户数
select distinct properties from table
where user_id is null
or user_id in (1,2,3)
对不起,误读了你的帖子,需要分组讨论