gpt4 book ai didi

mysql - 将数据从一行移动到另一行

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

我不太确定我是否以错误的方式思考这个问题,所以如果是这样的话,也许有人会给我指出正确的方向。但是,如果我只是缺少这个概念,那么也许我可以得到帮助。

所以无论如何我都会赢......或者什么的。

我想做的是这样的,给定数据库中的一个表,在单个查询中将特定值移动到另一行。

以这张表为例说明:

id I value
0 I 5
1 I 2

我想移动 id=0value 以便表格变为:

id I value
0 I 0
1 I 5

(注意!id=1 处的值无关紧要,它已被覆盖并且 id=0 _value_ 只是设置为零)

到目前为止,我的尝试是按照以下方式进行查询:

UPDATE atable 
SET item = CASE id
WHEN '1' THEN (SELECT value FROM atable WHERE id='1')
WHEN '0' THEN '0'
END;

但是这是无效的,我不能以那种方式使用 SELECT。所以我的 #2 是:

UPDATE atable 
SET item=(SELECT value FROM atable WHERE id='1')
WHERE id='0';

哪种方法有效,但是我找不到为 id=0 设置 value=0 的方法

我希望这一切都是有道理的,而不是现在只是胡说八道。

只是为了让一切都清楚:我想将值从一行移动到另一行,所以复制行不通我能弄清楚。而且我想在一个查询中完成,当然我可以将它分成两个查询,这样会很简单

感谢您花时间阅读本文。

最佳答案

我认为这会有所帮助 -

UPDATE atable a,
(SELECT value, id FROM atable) c
SET a.value = c.value
WHERE a.id < @MAX(id)
AND a.id = c.id + 1;

唯一的条件是 ID 应该按顺序排列,并且您不应该激活安全更新模式。

关于mysql - 将数据从一行移动到另一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10692659/

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