разделенная запятыми строка выбранных значений в mysql
Я хочу преобразовать выбранные значения в строку, разделенную запятыми в MySQL. Мой первоначальный код выглядит следующим образом:
SELECT id FROM table_level where parent_id=4;
которой производятся:
'5'
'6'
'9'
'10'
'12'
'14'
'15'
'17'
'18'
'779'
мой желаемый результат будет выглядеть так:
"5,6,9,10,12,14,15,17,18,779"
7 ответов
Если у вас есть несколько строк для parent_id.
SELECT GROUP_CONCAT(id) FROM table_level where parent_id=4 GROUP BY parent_id;
Если вы хотите заменить пробел с запятой.
SELECT REPLACE(id,' ',',') FROM table_level where parent_id=4;
использовать group_concat () функция mysql.
SELECT GROUP_CONCAT(id) FROM table_level where parent_id=4 GROUP BY parent_id;
это даст вам конкатенировать строку :
5,6,9,10,12,14,15,17,18,779
попробуй такое
SELECT CONCAT('"',GROUP_CONCAT(id),'"') FROM table_level
where parent_id=4 group by parent_id;
результат будет
"5,6,9,10,12,14,15,17,18,779"
первый set group_concat_max_len
, иначе это не даст вам всего результата:
SET GLOBAL group_concat_max_len = 999999;
SELECT GROUP_CONCAT(id) FROM table_level where parent_id=4 group by parent_id;
разделитель по умолчанию между значениями в группе является запятая(,). Чтобы указать любой другой разделитель, используйте SEPARATOR
как показано ниже.
SELECT GROUP_CONCAT(id SEPARATOR '|')
FROM `table_level`
WHERE `parent_id`=4
GROUP BY `parent_id`;
5/6/9/10/12/14/15/17/18/779
чтобы устранить разделитель, используйте SEPARATOR ''
SELECT GROUP_CONCAT(id SEPARATOR '')
FROM `table_level`
WHERE `parent_id`=4
GROUP BY `parent_id`;
см. для получения дополнительной информации GROUP_CONCAT