具有多个数字的MySQL DB显示为行

时间:2012-02-08 05:52:38

标签: mysql sql

我有一个相当复杂的问题(至少对我而言)

我有以下表结构

| 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 个答案:

答案 0 :(得分:5)

这显示了您正在寻找的结果......但我不喜欢在查询中格式化结果的想法!

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

这是一个有效的example

答案 1 :(得分:3)

你可以使用MySQL的group_concat

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

从中生成完全格式化的输出作为练习。

答案 2 :(得分:0)

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