【发布时间】:2015-11-24 08:07:24
【问题描述】:
我在下面的 select sql 查询中使用了FIND_IN_SET 并得到了结果,但我想存储industrie_branch 逗号分隔列表
选择查询:
SELECT i.instagrammer_id
, CONCAT(i.first_name,' ',i.last_name) AS instagrammer_name
, FLOOR(DATEDIFF (NOW(), i.date_of_birth)/365) AS age
, i.date_of_birth
, i.gender
, i.email
, i.created_date
, b.name_en AS industrie_branch
FROM instagrammer AS i
LEFT JOIN industries_branches b ON FIND_IN_SET(b.industrie_branch_id, i.industrie_branch)
WHERE i.status = 1
ORDER BY instagrammer_name DESC
并获得上述查询的输出:
instagrammer_id instagrammer_name age date_of_birth gender email industrie_branch
*************** ***************** *** ************* ****** **************** ****************
37 Jack 27 1988-09-30 male jack@hotmail.com Food
37 Jack 27 1988-09-30 male jack@hotmail.com Photography
38 Tom 27 1988-09-30 male tom@gmail.com Lifestyle
38 Tom 27 1988-09-30 male tom@gmail.com Luxury
但我希望此输出带有 industrie_branch 的逗号分隔列表:
instagrammer_id instagrammer_name age date_of_birth gender email industrie_branch
*************** ***************** *** ************* ****** **************** ****************
37 Jack 27 1988-09-30 male jack@hotmail.com Food, Photography
38 Tom 27 1988-09-30 male tom@gmail.com Lifestyle, Luxury
【问题讨论】:
-
永远不要将数据存储为逗号分隔值 - 这只会给您带来很多麻烦。一个值/行是SQL方式!
-
使用SQLFiddel将您的mysql数据样本发送给我们
-
Jarlh 是正确的。然而,作为一个短期的 hack,您可以使用 GROUP_CONCAT 将此查询包装在另一个查询中
-
只需使用此线程即可获得所需的输出,虽然不完全但很有帮助。 stackoverflow.com/questions/18113803/…
-
但我想在我的数据表中显示记录。