gpt4 book ai didi

mysql - 使用mysql交换两个不同行中的 "two"列值

转载 作者:行者123 更新时间:2023-11-29 08:09:23 28 4
gpt4 key购买 nike

我有两行,每行包含一周、一天和一个事件。使用自增主键来区分行。

这是一个例子:

ID   Week  Day        event
-------------------------------
1 | 1 | 2 | house keeping
2 | 2 | 3 | house viewing

我想要做的是交换指定的两行的星期和日期,使其看起来像这样:

ID   Week  Day        event
-------------------------------
1 | 2 | 3 | house keeping
2 | 1 | 2 | house viewing

但是 ID 必须保持不变

我一直在阅读其他人的帖子,发现这个解决方案使用临时变量来交换每行中的一列值。

UPDATE my_table SET a=@tmp:=a, a=b, b=@tmp;

有人可以帮我交换两列而不是仅仅一列吗?

谢谢

最佳答案

我假设您的表中只有 2 行。
如果不是,您需要稍微修改 JOIN 条件。

这是一种可能的方法。

CREATE TEMPORARY TABLE T(ID int, Week int, Day int)
INSERT INTO T(ID, Week, Day)
SELECT ID, Week, Day from TableName;

UPDATE TableName t1
JOIN T t2 on t1.ID <> t2.ID
SET
t1.Week = t2.Week,
t1.Day = t2.Day;

DROP TEMPORARY TABLE T;

这是一个更好的。

UPDATE
tablename AS t1
JOIN tablename AS t2 ON
( t1.id <> t2.id )
SET
t1.week = t2.week,
t2.week = t1.week,
t1.day = t2.day,
t2.day = t1.day;

关于mysql - 使用mysql交换两个不同行中的 "two"列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21946432/

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