2

我有一个表格,其中有一列艺术家和另一列符号,并希望将它们加入一个单元格。加入时,尝试此操作时出现以下错误

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

1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解在 'SYMBOL) FROM artist_view group by LOOK_UP_TO_CAT_ID LIMIT 附近使用的正确语法

如何让分隔符成为我的 SYMBOL 字段

编辑:什么对我有用

这最终对我有用。我在这里找到了答案:

在 MySQL 中将多行连接成单行

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

2 回答 2

1

您不能这样做,SEPARATOR必须是字符串文字,不能放置列或表达式。引用自GROUP_CONCAT

使用 SEPARATOR 后跟应插入组值之间的字符串文字值。

改为使用字符串文字作为分隔符。

于 2013-02-21T13:27:01.637 回答
0

我不确定你想如何ARTIST,SYMBOL,SEPARATOR在每个组合中分开,LOOK_UP_TO_CAT_ID但这应该让你开始:

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;
于 2013-02-21T13:56:42.183 回答