我的桌子..
articles fields:
cats fields:
文章_猫 fields:
我有这个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 可以做到这一点吗?
在数据库中数组意味着表。如果您想要数组格式的数据,最好的方法是将值存储在单独的临时表中。
Like
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 和名称。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)