我只是从这样的查询中得到结果
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
有谁能够帮我
我只是从这样的查询中得到结果
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
有谁能够帮我
您可以使用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, ...