разделенная запятыми строка выбранных значений в 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"
использовать
group_concatметод в mysql
первый
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
Comments