将多个MySQL行放入一个字段

时间:2017-07-04 13:39:14

标签: php mysql

我在stackoverflow上尝试了类似问题的解决方案,但没有成功。 这是mysql查询:

$sql= "SET group_concat_max_len = 2048";
$sql = "select p.id,p.name,p.logo,p.short_description,  GROUP_CONCAT(c.category_name SEPARATOR ', ')  from eshop p, eshop_cat c  GROUP BY p.id";

我无法理解查询的错误,但c.category结果为空。如果我这样做没有组concat并使用内部联接我收到所有数据正确。但是对于每种产品的每个类别,我有相同产品的多行。 (例如,如果产品有3个类别,那么它会显示产品3次。)我只想为每个产品分为1行,并用逗号分隔这些类别 你能帮帮我吗

1 个答案:

答案 0 :(得分:2)

试试这个

$sql= "SET group_concat_max_len = 2048";
$sql = "select p.id,p.name,p.logo,p.short_description,  GROUP_CONCAT(c.category_name SEPARATOR ', ') as category_names   from eshop p join  eshop_cat c on
p.id=c.id GROUP BY p.id";

只需放置您的关系列p.id=c.id,然后它就会适合您。