• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

一个MySQL字段包含多个ID怎么解决

mysql 搞代码 7年前 (2018-06-05) 181次浏览 已收录 0个评论

一个mysql字段包含多个ID如何解决
大家好,最近做mysql查询,遇到一个问题,希望大家可以帮忙解决一下:
有两个表,表1,product如下,一个产品可能同时属于两种类型。
product_id product_name product_type_id 
1 产品A 1,2 
2 产品B 2,3 

表2,type,如下:
product_type_id product_type_name 
1 类别1 
2 类别2 
3 类别3 

最后想实现如下的查询结果:
product_id product_name product_type_id product_type_name 
1 产品A 1,2 类别1,类别2 
2 产品B 2,3 类别2,类别3 

请问该如何实现呢? 

——解决方案——————–

SQL code

 root@localhost : test 04:47:33>select * from ab; +------------+--------------+-----------------+ | product_id | product_name | product_type_id | +------------+--------------+-----------------+ | 1 | 产品A | 1,2 | | 2 | 产品B | 2,3 | +------------+--------------+-----------------+ 2 rows in set (0.00 sec) root@localhost : test 04:47:42>select * from ac; +-----------------+-------------------+ | product_type_id | product_type_name | +-----------------+-------------------+ | 1 | 类别1 | | 2 | 类别2 | | 3 | 类别3 | +-----------------+-------------------+ 3 rows in set (0.00 sec) root@localhost : test 04:47:44>select product_id,product_name,group_concat(product_type_name) as type from ab,ac where instr(ab.product_type_id,ac.product_type_id) group by product_id,product_name; +------------+--------------+-----------------+ | product_id | product_name | type | +------------+--------------+-----------------+ | 1 | 产品A | 类别1,类别2 | | 2 | 产品B | 类别2,类别3 | +------------+--------------+-----------------+ 2 rows in set (0.00 sec) 
------解决方案--------------------

SQL code

 select product_id,product_name,ab.product_type_id,group_concat(product_type_name) as typename from ab,ac where instr(ab.product_type_id,ac.product_type_id) group by product_id,product_name; +------------+--------------+-----------------+-----------------+ | product_id | product_name | product_type_id | typename | +------------+--------------+-----------------+-----------------+ | 1 | 产品A | 1,2 | 类别1,类别2 | | 2 | 产品B | 2,3 | 类别3,类别2 | +------------+--------------+-----------------+-----------------+ 
------解决方案--------------------
用GROUP_CONCAT即可
------解决方案--------------------
select a.*,group_concat(b.product_type_name)
from 表1 a, 表2 b
where find_in_set(b.product_type_id, a.product_type_id)
group by a.product_id

欢迎大家阅读《一个MySQL字段包含多个ID怎么解决》,跪求各位点评,by 搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:一个MySQL字段包含多个ID怎么解决
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址