【问题标题】:using group_concat with a function()将 group_concat 与 function() 一起使用
【发布时间】:2014-01-20 11:25:06
【问题描述】:

我的问题是我有一个查询,使用 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”,而是得到“apple”

似乎它只是将我的分组归零

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

【问题讨论】:

    标签: php function group-concat


    【解决方案1】:

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

    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;
    

    【讨论】:

    • 嗯,会尝试,但我也编辑了我的第一个问题。忘了说我已经加入了多个表
    • 是的,成功了。进行另一个联接并丢失我的 initali 分组并将分组设置为 table3 行
    猜你喜欢
    • 2019-01-09
    • 2014-08-18
    • 1970-01-01
    • 2015-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-06
    • 2015-09-11
    相关资源
    最近更新 更多