加入字符串并在mysql中添加它们之间的字符

时间:2014-01-23 09:42:33

标签: mysql sql

我有两张表格如下:

id    |  name
1     |  abc
2     |  def

存储

id | name | agent_id
1  | aaa  | 1
2  | bbb  | 1

我想这样结果:

agent_name | store_name
  abc      | aaa|bbb

不会

agent_name | store_name
  abc      |   aaa
  abc      |   bbb

哪个查询可以帮我这样做?我知道concat函数,但我不知道如何在字符串之间添加字符|

2 个答案:

答案 0 :(得分:4)

您可以使用GROUP_CONCAT(expr)

SELECT 
  a.name,
  GROUP_CONCAT(s.name SEPARATOR '|') store_name
FROM
  agents a 
  JOIN stores s 
    ON (a.id = s.agent_id) 
GROUP BY a.id 

注意请注意,结果会被截断为group_concat_max_len系统变量给出的最大长度,该变量的默认值为1024

答案 1 :(得分:0)

试试这个

SELECT a.name agent_name,CONCAT(a.name,'|',b.name)store_name 
FROM agents a 
INNER JOIN stores b ON a.id=b.id

CONCAT函数用于连接两个字符串以形成单个字符串。 来自代理表的这个“名称”与字符串'|'连接和来自商店表的“名称”使用连接来获得所需的结果