簡體   English   中英

將group_concat與function()一起使用

[英]using group_concat with a function()

我的問題是我有一個查詢,使用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”,因此在獲取結果中使用了該函數。 問題是我沒有得到“蘋果,橙色”,而是得到了“蘋果”

好像只是將我的分組歸零

尋找答案,但找不到任何答案。 有人嗎?

您可以聯接到另一個表上以在查詢中獲取名稱:

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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM