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

Php 如何使用group_concat从db获取完整的电子邮件列表,php,mysql,sql,select,group-concat,Php,Mysql,Sql,Select,Group Concat,我使用下面的查询从表中获取电子邮件记录 但它并没有从表中获得完整的电子邮件列表 select group_concat(email) as email from table $temp=$Db1->fetch_array($sql); $elist['emails']=$temp[email]; 它只显示了50多条记录,但我有1400多条数据库记录用于电子邮件 问题: 如何使用group_concat从数据库获取完整的电子邮件,即逗号分隔。您不能GROUP_CONCAT()的最大长度为1

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

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

select group_concat(email) as email from table
$temp=$Db1->fetch_array($sql);
$elist['emails']=$temp[email];
它只显示了50多条记录,但我有1400多条数据库记录用于电子邮件

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

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

不过,这里不需要
GROUP\u CONCAT()
。您要做的是为每个电子邮件地址提取一行,即


您必须通过运行下面的查询来重置GROUP_CONCAT函数的默认长度,然后您就可以运行查询了

系统变量:


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

同意使用GROUP_CONCAT()没有多大意义here@duskwuff我需要用逗号表示的电子邮件,这样我就可以用它们来发送电子邮件了。
x=infrade(',',$emails)
$emails.=','$第[“电子邮件”]行
SELECT email FROM table
...
while ($row = $db->fetch_array) {
    $emails[] = $row["email"];
}
SET SESSION group_concat_max_len = 10000;
SELECT GROUP_CONCAT(email) AS email FROM TABLE;