返回列匹配集合中所有值的行 [英] Return rows where column matches all values in a set

查看:39
本文介绍了返回列匹配集合中所有值的行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在mysql中有一个表结构:

I have a Table structure in mysql:

ID  USER_ID TYPE
1   1       B
2   3       B
3   4       B
4   3       C
5   3       D
6   4       C
7   4       D
8   3       B

小提琴链接:http://sqlfiddle.com/#!2/7df38f/1

我有一个要求,比如获取所有类型"为 B 和 C 的USER_ID".即我需要如下结果:

I have a requirement like get all 'USER_ID' having 'Type' as B and C. ie I need a result as below:

USER_ID
3
4

推荐答案

试试这个查询

SELECT group_concat(`type`) AS types,user_id 
FROM users 
WHERE `type` IN('B','C') 
group by user_id 
HAVING FIND_IN_SET('B',types)>0 && FIND_IN_SET('C',types)>0 

SQL Fiddle http://sqlfiddle.com/#!2/8ef8e/2

SQL Fiddle http://sqlfiddle.com/#!2/8ef8e/2

这篇关于返回列匹配集合中所有值的行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆