gpt4 book ai didi

mysql - 如何更改或交换与一列相关的值?

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

假设我有一个包含两列 x 和 y 的表,没有任何索引或主键Fig:1.0,如下所示:

enter image description here

我想更改 y 的值,例如:

x1 = y2
x2 = y1
x3 = y4
x4 = y3
x5 = y6
x6 = y5

模式将是这样的:

enter image description here

输出将如下所示:

output image

如何使用选择查询来执行此操作?如果使用 Select 无法实现,那么如何使用 Update 或 MySQL 中的任何其他方式进行操作。

最佳答案

只有在没有重复行的情况下,这才有效:

update tablename t inner join (
select
(@row_number1:=@row_number1 + 1) num, x, y
from tablename, (select @row_number1:=0) t
) n
on n.x = t.x and n.y = t.y
inner join (
select
(@row_number2:=@row_number2 + 1) num, x, y
from tablename, (select @row_number2:=0) t
) p
on p.num = case n.num % 2
when 1 then n.num + 1
when 0 then n.num - 1
end
set t.y = p.y;

请参阅demo .
结果:

| x   | y   |
| --- | --- |
| 11 | 22 |
| 12 | 21 |
| 12 | 24 |
| 14 | 23 |
| 15 | 26 |
| 16 | 25 |

关于mysql - 如何更改或交换与一列相关的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57161946/

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