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;