[英]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.id
和table2.name
更改為適當的名稱。
至於該函數,您不會返回$result
因此對此函數的任何調用都將返回NULL
。 只需添加:
return $result;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.