2013-02-21 34 views
2

我有一張表格,其中包含一列藝術家和另一個符號,並希望將它們連接到一個單元格中。加入時出現以下錯誤當我嘗試此操作時如何將sql中的goup_concat分隔符設置爲列字段

SELECT LOOK_UP_TO_CAT_ID, group_concat(ARTIST 
SEPARATOR SYMBOL) 
FROM artist_view 
GROUP BY LOOK_UP_TO_CAT_ID 

1064 - 您的SQL語法有錯誤;檢查對應於你的MySQL服務器版本的LOOK_UP_TO_CAT_ID LIMIT使用近「符號)FROM artist_view組正確的語法手冊

如何獲得分體是我的符號字段

編輯:什麼工作我

這是最終爲我工作。我找到了答案在這裏:

Concatenate multiple rows in single rows in MySQL

SELECT 
    LOOK_UP_TO_CAT_ID, 
    group_concat(concat(ARTIST, " ",SYMBOL," ") SEPARATOR '') 
FROM artist_view 
GROUP BY LOOK_UP_TO_CAT_ID 

回答

1

你不能這樣做,SEPARATOR必須是一個字符串文字,你不能把一列或表達式。從GROUP_CONCAT引述:

使用SEPARATOR隨後字符串應 插入組值之間的字面值

改爲使用字符串作爲分隔符。

+0

所以,我最好的選擇是加入我的藝術家列符號用的一個分隔空間然後將所有這些行連接在一起? – Mark 2013-02-21 13:39:09

+1

@Mark - 是的,因爲'SYMBOL'來自另一個表格,您可以使用'CONCAT'並加入這兩個表格。 – 2013-02-21 15:04:41

0

我不知道你怎麼想每個LOOK_UP_TO_CAT_ID中分離ARTIST,SYMBOL,SEPARATOR組合,但這應該讓你開始:

select LOOK_UP_TO_CAT_ID,group_concat(grouped) 
from 
(
select LOOK_UP_TO_CAT_ID,ARTIST,`SEPARATOR`,`SYMBOL`, 
concat(ARTIST,`SEPARATOR`,SYMBOL) as grouped 
from artist_view av 
) t 
group by LOOK_UP_TO_CAT_ID; 
相關問題