我不太确定我是否以错误的方式思考这个问题,所以如果是这样的话,也许有人会指出我正确的方向。但是,如果我只是错过了这个概念,那么也许我可以得到帮助。
所以无论如何我都会赢……什么的。
我想做的是这样的,给定数据库中的一个表,在单个查询中将特定值移动到另一行。
为了澄清,以这张表为例:
id I value
0 I 5
1 I 2
我想移动id=0的值,以便表格变为:
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的方法
我希望这一切都有意义,而不是现在只是漫无边际。
只是为了弄清楚: 我想将值从一行移动到另一行,所以复制行不通,我可以弄清楚那个。而且我想在一个查询中完成,当然我可以将它分成两个查询,这很简单
感谢您花时间阅读本文。