我有您的MySql表:“订单”和“成分”。在“订单”中,我有一个字段,其中成分作为字符串“ 1,2,3 ...”插入。在“成分”表中,我具有主要字段ID,另一个具有成分名称。如下:
当我选择“订单”表的id = 1时,是否可以使用SELECT来获取成分字符串“洋葱,苹果,猕猴桃...”?
答案 0 :(得分:1)
理想情况下,不应该将配料ID作为逗号分隔的列表存储。作为解决此错误设计选择的一种方法,您可以使用MySQL的FIND_IN_SET
函数:
SELECT
GROUP_CONCAT(i.name ORDER BY i.id) AS ingredients
FROM Orders o
INNER JOIN Ingredients i
ON FIND_IN_SET(i.id, o.ingredientsid) > 0
GROUP BY
o.id;