-5

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

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

有谁能够帮我

4

2 回答 2

3

试试下面提到的链接: http ://www.artfulsoftware.com/infotree/queries.php#78

于 2012-04-09T08:47:24.957 回答
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, ...
于 2012-04-09T08:44:24.790 回答