我一直在尝试对SQL查询使用SEPERATOR函数,但是它给我带来语法错误,为什么?
SELECT e.*, GROUP_CONCAT(mgl.genre_title, mgl.genre_id SEPERATOR "-") AS genres FROM events e
LEFT JOIN music_genres_link mgl ON e.id = mgl.event_id
WHERE e.id = 1
GROUP BY e.id
我只是希望这样做:
55电子,23 ance
代替:
55Electronic,23Trance
答案 0 :(得分:3)
我怀疑语法错误是因为您拼写错误。您需要SEPARATOR。
答案 1 :(得分:2)
组concat不需要在列之间使用逗号..
如果需要group_concat作为concat值,则应在grou_concat函数内部使用concat来连接列
SELECT e.*, GROUP_CONCAT(concat(mgl.genre_title, mgl.genre_id) SEPARATOR "-") AS genres
FROM events e
LEFT JOIN music_genres_link mgl ON e.id = mgl.event_id
WHERE e.id = 1
GROUP BY e.id
和分隔符..也是
答案 2 :(得分:2)
我相信你想要
SELECT e.*,
GROUP_CONCAT(mgl.genre_title, '-', mgl.genre_id) as genres
FROM events e LEFT JOIN
music_genres_link mgl
ON e.id = mgl.event_id
WHERE e.id = 1
GROUP BY e.id;
注意:
SEPARATOR
,而不是SEPERATOR
。GROUP_CONCAT()
中手动添加。GROUP_CONCAT()
带有多个参数。GROUP BY
。