MySQL将多行连接到一个字段中

时间:2014-06-30 16:20:54

标签: mysql

目前我有一个包含两个表zip_codes和电子邮件的数据库。 zip_codes包含三个字段zid,eid和zip。电子邮件包含eid,电子邮件和位置。

这是我当前的查询:

SELECT a.zid, a.zips, b.email, b.location FROM zip_codes AS a INNER JOIN emails AS b ON a.eid = b.eid

基本上我想要做的是将我得到的结果转换成这个(http://sqlandme.com/2011/04/27/tsql-concatenate-rows-using-for-xml-path/),但我不确定如何使用我当前的设置来做到这一点。

我尝试更改名称但是我在[text()]附近的语法中出错,因为我不知道如何使用它,我被卡住了。

感谢所有帮助。

1 个答案:

答案 0 :(得分:0)

对于Mysql,您可以使用GROUP_CONCAT

SELECT 
  b.email,
  b.location,
  GROUP_CONCAT(a.zips) zipcodes 
FROM
  zip_codes AS a 
  INNER JOIN emails AS b 
    ON a.eid = b.eid 
GROUP BY b.eid
  

使用GROUP_CONCAT的注意事项:结果被截断为最大长度   group_concat_max_len系统变量,其默认值为   1024.该值可以设置得更高,尽管返回值的有效最大长度受值的约束   max_allowed_pa​​cket的