Я использую запрос ниже, чтобы получить записи электронной почты из таблицы.
но он не получает полный список адресов электронной почты из таблицы.
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_CONCAT()
здесь, хотя. Что вы хотите сделать, это получить одну строку для каждого адреса электронной почты, то есть
SELECT email FROM table
...
while ($row = $db->fetch_array) {
$emails[] = $row["email"];
}
Вы должны сбросить длину по умолчанию GROUP_CONCAT Функция, запустив ниже запрос, то вы запустили свой запрос.
Системная переменная: group_concat_max_len
SET SESSION group_concat_max_len = 10000;
SELECT GROUP_CONCAT(email) AS email FROM TABLE;
Вы можете сбросить его значение глобально или сессионно. Обновите длину в зависимости от вашего использования.