MySQL DB с несколькими номерами показывается в виде строк - PullRequest
0 голосов
/ 08 февраля 2012

У меня довольно сложный вопрос (по крайней мере, для меня)

У меня есть следующая структура таблицы

| id | roomtype | roomno | feature
| 1  |    STDK  |   11   |  BT
| 2  |    STDK  |   11   |  AE
| 3  |    STDK  |   22   |  SMK
| 4  |    STDK  |   22   |  BT
| 5  |    STDT  |   33   |  NONSMK

и я хочу получить такой вывод

Type: STDK - RoomNo: 11 - Features: BT, AE
Type: STDK - RoomNo: 22 - Features: SMK, BT
Type: STDT - RoomNo: 33 - Features: NONSMK

Возможно, это не так сложно, но я не могу понять ...

Ответы [ 3 ]

5 голосов
/ 08 февраля 2012

Это показывает результат, который вы ищете ... Но мне не нравится идея форматирования результата в запросе!

select
    concat("Type: ", roomtype,
    " - RoomNo: ", roomno,
    " - Features: ", group_concat(feature order by feature separator ', '))
    as result
from t1
group by roomtype, roomno

Вот рабочий пример

3 голосов
/ 08 февраля 2012

Вы можете использовать MySQL group_concat:

select roomtype, roomno, group_concat(feature order by feature separator ', ')
from your_table
group by roomtype, roomno
order by roomno

Создание полностью отформатированного вывода из этого файла оставлено в качестве упражнения.

0 голосов
/ 08 февраля 2012
SELECT 
     roomtype AS Type, 
     roomno AS RoomNo, 
     GROUP_CONCAT(feature ORDER BY feature SEPARATOR ', ') AS Features
FROM 
    tableName
GROUP BY roomtype, roomno
ORDER BY roomno
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...