gpt4 book ai didi

mySQL 从行创建列

转载 作者:行者123 更新时间:2023-11-29 10:43:22 25 4
gpt4 key购买 nike

从此类表中:

| id | in | value | valueMax |
| 1 | 1 | 10 | 25 |
| 1 | 2 | 11 | 25 |
| 1 | 3 | 12 | 25 |
| 2 | 1 | 20 | 35 |
| 2 | 2 | 21 | 35 |
| 2 | 3 | 22 | 35 |

是否可以进行返回以下内容的选择:

| id | value1 | valueMax1  | value2 | valueMax2  | value3 | valueMax3  |
| 1 | 10 | 25 | 11 | 25 | 12 | 25 |
| 2 | 20 | 35 | 21 | 35 | 22 | 35 |

到目前为止,我已经尝试过使用 GROUP_CONCAT 或 SELECT 内的 SELECT 的解决方案,但这不是我正在寻找的结果。根据评论,我接下来将展示如果添加 IN = 4 我想要发生的情况。

使用新数据:

| id | in | value | valueMax |
| 1 | 1 | 10 | 25 |
| 1 | 2 | 11 | 25 |
| 1 | 3 | 12 | 25 |
| 1 | 4 | 13 | 35 |
| 2 | 1 | 20 | 35 |
| 2 | 2 | 21 | 35 |
| 2 | 3 | 22 | 35 |
| 2 | 4 | 23 | 35 |

选择结果:

| id | value1 | valueMax1  | value2 | valueMax2  | value3 | valueMax3  | value4 | valueMax4  |
| 1 | 10 | 25 | 11 | 25 | 12 | 25 | 13 | 35 |
| 2 | 20 | 35 | 21 | 35 | 22 | 35 | 23 | 35 |

注意:作为一项附加功能,是否有办法在不知道 IN 值的确切数量的情况下实际获得这样的结果?因此,相同的查询适用于具有 2 个可能的 IN 值的表,以及具有 5 个可能的值的表。

最佳答案

你可以这样做:

| id |  value    | valueMax   | 
| 1 | 10,11 | 25,25,25 |
| 2 | 20,21 | 35,35,35 |

这样:

SELECT id, GROUP_CONCAT(string SEPARATOR ' ') FROM table GROUP BY id;

How to use GROUP BY to concatenate strings in MySQL?

关于mySQL 从行创建列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45058043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com