将8行插入8列

时间:2012-04-09 08:40:09

标签: mysql

我只是从这样的查询得到结果

user_id
108
183
172
129
158
178
117
104

我想要这种格式的结果

m1    m2   m3   m4   m5   m6   m7   m8
108  183  172  129  158  178  117   104

任何人都可以帮助我

2 个答案:

答案 0 :(得分:3)

答案 1 :(得分:1)

您可以使用GROUP_CONCAT获取类似的结果集:

SELECT GROUP_CONCAT( user_id ) FROM table GROUP BY user_id

否则,如果要为结果集中的每一行创建一个新列,可以使用CASE,但值或值范围必须是硬编码的:

SELECT CASE WHEN user_id = 108 THEN user_id ELSE 0 END AS m1, CASE WHEN user_id = 183 THEN user_id ELSE 0 END AS m2, ...

或按范围:

SELECT CASE WHEN user_id > 100  AND user_id < 150 THEN GROUP_CONCAT(user_id) ELSE 0 END AS m1, CASE WHEN user_id > 150 AND user_id < 200 THEN GROUP_CONCAT(user_id) ELSE 0 END AS m2, ...