我有一个名为 user_meta
的表,它包含如下数据:
---------------------------
| user_id | field | value |
---------------------------
| 1 | 1 | Green |
| 1 | 2 | Square |
| 1 | 3 | Big |
| 2 | 1 | Red |
| 2 | 2 | Square |
| 2 | 3 | Small |
----------------------------
field
列是用户配置文件中表单字段的编号。 value
列是用户通过表单提交的值。
如何编写 MySQL 查询以返回所有具有“绿色大方 block ”的用户?
谢谢!
最佳答案
这将返回您想要的结果。这使用 WHERE
子句返回所有具有所需值的记录,然后计算不同的值以确保只有 3 个:
select user_id
from user_meta
where value in ('Green', 'Square', 'Big')
group by user_id
having count(distinct value) = 3
关于MySQL 在用户元表中选择/加入多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14842277/