mysql - sql中如何设置group_concat分隔符为列字段

标签 mysql sql group-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 服务器版本相对应的手册,了解在 'SYMBOL) FROM artist_view group by LOOK_UP_TO_CAT_ID LIMIT 附近使用的正确语法

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

编辑:什么对我有用

这就是最终对我有用的东西。我在这里找到了答案:

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

最佳答案

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

use SEPARATOR followed by the string literal value that should be inserted between group values.

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

关于mysql - sql中如何设置group_concat分隔符为列字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15003304/

相关文章:

sql - 如何在子查询中使用外部列

子查询中的 MySQL group_concat 返回多行

mysql - GROUP_CONCAT 改变 GROUP BY 顺序

mysql - 在主 UPDATE 语句的子查询中指定相同的表

php - 我们如何在后台运行sql查询

php - 制作常见 SQL 字段的大小是多少?

MySQL:对列上的元素进行分组和展平

java - 使用 hibernate 和 mysql 自动生成时,表创建的 SQL 不正确

sql - 将行透视到返回值超过 1 个的列

sql - 通过重命名旧表,然后填充新版本,将表停机时间降至最低?