我的桌子..
文章字段:
- ID
- 名称
猫字段:
- ID
- 名称
article_cats 字段:
- ID
- 的article_id
- CAT_ID
我有这个sql:
SELECT
a.id AS article_id ,
a.name AS article_name ,
COUNT( c.id ) AS num_categories ,
GROUP_CONCAT( c.name ) AS categorie_names
FROM
articles AS a
LEFT JOIN
article_cats AS ac
ON
( a.id = ac.article_id )
LEFT JOIN
cats AS c
ON
( ac.cat_id = c.id )
GROUP BY
a.id
并提供此表结构:
我需要的是,在数组中获取类别ID和名称,因此categorie_names将是一个数组,每个类别包含字段cat_id和cat_name。
这可以用mysql吗?
答案 0 :(得分:4)
在数据库数组中表示表。如果您希望数组格式的数据是将值存储在单独的临时表中的最佳方法。
像
article_id, category_id, category_name
1 1 Cat1
2 1 Cat1
3 2 Cat2
3 1 Cat1
或者您必须在group_concat
中使用连接GROUP_CONCAT(cast(concat(c.id,\': \',c.name) AS char)SEPARATOR \', \') AS categorie_names
所以结果就像2:Cat2,1:Cat2。您可以拆分(首先使用','然后':')此值并检索ID和名称。