gpt4 book ai didi

mysql - 合并表中的 2 行

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

我有以下数据:

-------table_a-------
| id | data | value |
| 1 | 5 | 1 |
| 2 | 3 | 3 |

我想要的输出是将第 2 行与第 1 行合并,以便 id = 1 ,数据仍为=5但值被添加,所以 1+3

-------table_a-------
| id | data | value |
| 1 | 5 | 4 |

这是我收到的查询信息,但第一个似乎不起作用。另外,这不是为了检索数据,而是为了操作数据库中的数据。

当前查询(第一个无效):

UPDATE table_a SET value = value + (SELECT a.value FROM table_a  a WHERE a.id = 2) WHERE id = 1;
DELETE FROM table_a WHERE id = 2;

最佳答案

如果这是您想要的逻辑:

UPDATE table_a
SET value = value + (SELECT a.value FROM table_a a WHERE a.id = 2)
WHERE id = 1;
DELETE FROM table_a WHERE id = 2;

更新将不起作用,因为您无法在查询的其余部分引用正在更新的表。您可以使用 hack 进行更新并执行以下操作:

UPDATE table_a
SET value = value + (SELECT value FROM (SELECT a.value FROM table_a a WHERE a.id = 2) )
WHERE id = 1;

双重选择解决了这个问题。更正确的方法是使用join:

UPDATE table_a a CROSS JOIN 
(SELECT a.value FROM table_a a WHERE a.id = 2) as a2
SET a.value = a.value + a2.value
WHERE id = 1;

关于mysql - 合并表中的 2 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28133778/

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