我只是从这样的查询得到结果
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
任何人都可以帮助我
答案 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, ...