Вставьте результаты запроса MYSQL в строку, разделенную запятой - PullRequest
1 голос
/ 26 марта 2011

Первый запрос, который я делаю, относится ко всем идентификаторам, связанным с пользователем:

$DBH = getDBH();
$stmt = $DBH->prepare("SELECT id FROM list WHERE user = ?");
$stmt->bind_param("s",$userid);
$stmt->execute();
$stmt->bind_result($ids);
$stmt->fetch();
$stmt->close();

в настоящее время хранится в таблице следующим образом:

ID            user

1             example
4             example
7             example
15            example

Идентификаторы не известны до запроса, и количество идентификаторов, связанных с пользователем, будет постоянно расти и сокращаться.

Итак, мой вопрос, как я могу запросить эти идентификаторы и вставить их в строку, где каждый идентификатор отделяется запятой

например: 1,4,7,15 и т. Д. И т. Д.

РЕДАКТИРОВАТЬ: ИСПОЛЬЗОВАНИЕ ГРУППОВОГО КОНКАТА ()

$stmt = $DBH->prepare("SELECT GROUP_CONCAT(id) as id FROM list WHERE user = ? GROUP BY id");
$stmt->bind_param("s",$userid);
$stmt->execute();
$stmt->bind_result($id);

1 Ответ

1 голос
/ 26 марта 2011

Взгляните на функцию group_concat ()

Обратите внимание, что максимальная длина строки может быть указана переменной group_concat_max_len () и по умолчанию составляет 1024 символа.

Вы можетеПосмотрите ваши с этим запросом

show variables like 'group%'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...