Mysql合并某一个字段,解决商品属性查询问题

本文介绍如何使用FIND_IN_SET函数实现表关联,并利用GROUP_CONCAT函数合并字段值,解决了多表联查及数据整合的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      今天接到一个需求,需要导出商品到excel,首先就是需要查询已经已上架的商品,这个跟提供给前端的查询接口还不太一样,因为是给管理人员使用的,所以商品信息比较全面,6表联查,这不是关键,关键是遇到一个问题,请让我细细道来。

       其中第一个问题,请看下边两张我简化后的表

          


我需要将这两张表关联起来,只要sku在skuIds中存在就可以关联,问了几个人,都跟我说是通过“,”拆分什么的,感觉好麻烦,后来看见一篇帖子,忽然发现这个好简单,十分感谢那位热心博主,下边贴出sql

SELECT
p.*, s.`value`
FROM
product p,
spec s
WHERE
FIND_IN_SET(p.sku, s.skuIds)

ORDER BY

p.sku

用了一个函数 FIND_IN_SET(str,strlist),其中str也可以写成入参,也可以直接用整个字段,strlist就是你需要满足的条件,只要你传进来的值在strlist中有,就满足条件,很是方便,查询完自后是这样的结果

  

    

如图所示,其实方框中是一件商品,我想把value合并,我去百度了下,找到一个合并字段的函数,GROUP_CONCAT(expr),然后用上了,sql如下:

SELECT
p.*, GROUP_CONCAT(s.`value`) `value`
FROM
product p,
spec s
WHERE
FIND_IN_SET(p.sku, s.skuIds)


GROUP BY 
p.sku
ORDER BY 
p.sku




完美解决!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值