Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 将8行插入8列_Mysql - Fatal编程技术网

Mysql 将8行插入8列

Mysql 将8行插入8列,mysql,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 有人能帮我吗你可以用它来获得类似的结果集: SELECT GROUP_CONCAT( user_id ) FROM table GROUP BY user_id 否则,如果要为结果集中的每一行创建一个新

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

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
有人能帮我吗

你可以用它来获得类似的结果集:

SELECT GROUP_CONCAT( user_id ) FROM table GROUP BY user_id
否则,如果要为结果集中的每一行创建一个新列,可以使用案例,但值或值的范围必须硬编码:

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, ...
选择当用户id>100且用户id<150时的情况,然后选择GROUP_CONCAT(用户id)否则0作为m1结束,当用户id>150且用户id<200时的情况,然后选择GROUP_CONCAT(用户id)否则0作为m2结束。。。
尝试下面提到的链接:

-1,现在去尝试一些东西。(这是我的投票结果,这一定是我在一篇文章中看到的最好的评论之一。)@MURTUZA007阅读pivot table请在问题中添加对您的特定用例要求、表结构和当前查询的解释。如果你希望人们尽力帮助你,你需要在你的问题上投入一些精力。是否附上示例输出?:)它将输出显示为一个由逗号分隔的数组,为每个结果强制使用不同的列名,我认为唯一的方法是使用CASE…是的,这就是我的意思。这可能不是OP想要的:)我认为实现OP想要的唯一方法是硬编码的案例,但它是硬编码的……嗯,链接不错,谢谢:)