使用带有函数的group_concat()

时间:2014-01-20 11:25:06

标签: php function group-concat

我的问题是我有一个查询,通过group_concat获取我需要的结果。这是查询。我已经加入了3个表,其中table1有例如人名,table2有他们喜欢的水果信息,table3有他们的水果名。在表2中,它们被编号为需要改变需求数据的原因

    SELECT 
      table1.row2,
      table2.group_concat(distinct row2) 
    FROM table1
    JOIN table2
    WHERE 
      table1.row1=table2.row1 
    GROUP BY 
      table1.row1

问题是第2行给出了数字(例1,2),但它们在另一个表中定义为1 = apple和2 = orange 所以我使用定义

的函数
    function fruit($value){
        if ($value==1){
            $result=apple;
        }elseif($value==2){
            $result=orange;
        }
    return $result;
    }

因为我想要一个列而不是“1,2”是“apple,orange”我在提取结果中使用了该函数。问题是我没有得到“苹果,橙色”,而是得到“苹果”

似乎只是将我的分组归零

寻找答案,但找不到任何答案。任何人???

1 个答案:

答案 0 :(得分:0)

您可以加入此其他表格以获取查询中的名称:

SELECT row1,group_concat(distinct table2.name) FROM table 
LEFT JOIN table2 ON (table.row2 = table2.id)
GROUP by row1

显然,您需要将table2.idtable2.name更改为适当的内容。

至于你没有返回$result的功能,所以对此的任何调用都将返回NULL。只需添加:

return $result;