gpt4 book ai didi

Mysql - 使用 sql 重新排列列值

转载 作者:行者123 更新时间:2023-11-30 23:24:58 25 4
gpt4 key购买 nike

我有一个包含多个列的表,其中四个只是通用整数值(num1、num2、num3、num4),并且数据源具有随机顺序的这些值。在 php 中,我将获取该行,将四个整数分配给一个数组,对数组进行排序,将排序后的值分配回去并保存该行。我想用sql来做这个。所以,像这样的表格

id, num1, num2, num3, num4
1 6 2 9 1
2 12 3 8 4

...

我想要的结果是

id, num1, num2, num3, num4
1 1 2 6 9
2 3 4 8 12

...

我用谷歌搜索了所有我能想到的东西,并搜索了 Mysql ref 手册,但似乎无法找到执行此操作的方法。有什么想法或者我应该只写一个 php 脚本吗?

最佳答案

好吧,这是一个逆轴、一个排序和一个轴,但最后我听说在 mysql 中没有,所以也许

Set @position = 0
CREATE TEMPORARY TABLE OrderedUnpivot AS (
Select Id,@position = @position + 1, @position % 4 as Position, Value From
(
Select Id,Position,Value From
(
select Id, 1 as Position, num1 as Value
Union
select Id, 2, num2
union
select Id, 3, num3
union
select Id, 4, num4
) depivot
Order by Id, Value
)
Select ID,V1.Value as Num1, V2.Value as Num2, V3.Value as Num3, V4.Value as Num4
From OrderedUnpivot v1
Inner join OrderedUnpivot v2 ON v1.Id = v2.ID
Inner join OrderedUnpivot v3 ON v1.Id = v3.ID
Inner join OrderedUnpivot v4 ON v1.Id = v4.ID

凌乱但值得深思,哦,没有经过测试,甚至没有语法检查。

关于Mysql - 使用 sql 重新排列列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13830805/

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