2013-02-21 88 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; 
相关问题