如何使用group_concat从db获取完整的电子邮件列表

时间:2015-01-07 01:04:01

标签: php mysql sql select group-concat

我使用下面的查询从表中获取电子邮件记录。

但它没有从表中获得完整的电子邮件列表。

select group_concat(email) as email from table
$temp=$Db1->fetch_array($sql);
$elist['emails']=$temp[email];

它只带来50 + - 记录,但我在db中有1400多条记录用于电子邮件。

问题: 如何使用group_concat从数据库获取完整的电子邮件,即逗号分隔。

2 个答案:

答案 0 :(得分:2)

你做不到。 GROUP_CONCAT()的最大长度为1024个字符(默认情况下),您正在达到该限制。可以提高这个限制,但不是无限期,所以这不是一个好的解决方案。

但是,您不需要GROUP_CONCAT()。你想要做的是为每个电子邮件地址取一行,

SELECT email FROM table
...
while ($row = $db->fetch_array) {
    $emails[] = $row["email"];
}

答案 1 :(得分:0)

您必须通过运行以下查询重置默认长度 GROUP_CONCAT 功能,然后运行查询。

系统变量:{​​{3}}

SET SESSION group_concat_max_len = 10000;
SELECT GROUP_CONCAT(email) AS email FROM TABLE;

您可以全局或会话方式重置其值。根据您的使用情况更新长度。