MySQL分隔符错误

时间:2018-07-29 10:43:01

标签: mysql sql

我一直在尝试对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

3 个答案:

答案 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