Как получить полный список писем из БД с помощью group_concat

Я использую запрос ниже, чтобы получить записи электронной почты из таблицы.

но он не получает полный список адресов электронной почты из таблицы.

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

Он показывает только 50+ — записей, но у меня есть 1400+ записей в дБ для электронной почты.

Вопрос:
Как получить полные электронные письма из БД, используя group_concat, т.е. разделенную запятой.

2

Решение

Ты не можешь GROUP_CONCAT() имеет максимальную длину 1024 символа (по умолчанию), и вы достигаете этого предела. Можно поднять этот лимит, но не до бесконечности, так что это не очень хорошее решение.

Вам не нужно GROUP_CONCAT() здесь, хотя. Что вы хотите сделать, это получить одну строку для каждого адреса электронной почты, то есть

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

Другие решения

Вы должны сбросить длину по умолчанию GROUP_CONCAT Функция, запустив ниже запрос, то вы запустили свой запрос.

Системная переменная: group_concat_max_len

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

Вы можете сбросить его значение глобально или сессионно. Обновите длину в зависимости от вашего использования.

0

По вопросам рекламы [email protected]