Задавайте вопросы, мы ответим
Вы не зашли.
допустим есть такая таблица:
id | value
-----------
2 | hi
2 | hello
2 | temp
3 | php
3 | css
я хочу сделать выборку всех value где id например равен 2,
но получить результат не в виде массива,
а в виде одной строки (ну или массива из одного элемента :
hihellotemp
т.е чтобы все найденные значения сложились вместе.
может здесь как-то использовать CONCAT? и вообще возможно ли это сделать за 1 запрос?
как обработать уже полученные данные я знаю. но мне хочется по возможности получить уже в удобном формате.
заранее благодарен.
Неактивен
mysql> SELECT GROUP_CONCAT(value) FROM tbl WHERE id = 2 GROUP BY id;
+---------------------+
| GROUP_CONCAT(value) |
+---------------------+
| hi,hello,temp |
+---------------------+
1 row in set (0.00 sec)
По умолчанию разделителем является запятая:
mysql> SELECT GROUP_CONCAT(value) FROM tbl WHERE id = 2 GROUP BY id;
+---------------------+
| GROUP_CONCAT(value) |
+---------------------+
| hi,hello,temp |
+---------------------+
1 row in set (0.00 sec)
Неактивен
спасибо
Неактивен
Пардон. Сейчас посмотрел и увидел, что неправильно составил предыдущее сообщение.
Вам ведь нужно было слепить слова (чтоб совсем без разделителя). Это делается так:
mysql> SELECT GROUP_CONCAT(value SEPARATOR '') FROM tbl WHERE id = 2 GROUP BY id;
+----------------------------------+
| GROUP_CONCAT(value SEPARATOR '') |
+----------------------------------+
| hihellotemp |
+----------------------------------+
1 row in set (0.01 sec)
Разделитель можно и любой другой использовать. А чтобы столбец назывался по-человечески, используйте ключевое слово AS:
mysql> SELECT GROUP_CONCAT(value SEPARATOR '') AS text FROM tbl WHERE id = 2 GROUP BY id;
+-------------+
| text |
+-------------+
| hihellotemp |
+-------------+
1 row in set (0.00 sec)
Неактивен