php – mySql – 使用逗号分隔值列表创建连接

前端之家收集整理的这篇文章主要介绍了php – mySql – 使用逗号分隔值列表创建连接前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一张桌子,上面有商家名字和字段,里面有他们提供的服务. “服务”字段是以逗号分隔的整数列表,它与另一个“服务”表相关,并带有“服务ID”和“服务名称”字段.

我正在尝试创建一个连接这两个的单个查询,因此我可以列出商家列表以及服务名称.到目前为止,我的解决方案是在我的初始’foreach’循环中进行第二次循环,但这可能意味着每个商家名称有5或6个db调用.

在一些StackOverflowing(google-ing)之后,我注意到使用逗号分隔字段可能不是最好的方法.

任何人都有办法进行连接,或者想如何更好地设置数据库结构?提前谢谢了!

最佳答案
Merchant
MerchantId   Name
          1   Adams Consulting

Merchant_Services
MerchantId    Service
         1    SEO
         1    Brand Consulting

您实际上可以获得以逗号分隔的列表:

SELECT m.*,GROUP_CONCAT(ms.Service) AS Services
FROM Merchant m
LEFT JOIN Merchant_Serivces ms
ON ms.MerchantId = m.MerchantId
GROUP BY m.MerchantId
ORDER BY m.Name,ms.Service

结果是:

MerchantID  Name              Services
----------  ----------------  --------------------
         1  Adams Consulting  Brand Consulting,SEO

猜你在找的MySQL相关文章