gpt4 book ai didi

mysql - 将值从一行复制到具有相同 groupID 的所有行

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

这是我的 MySQL 表:

ID  | groupID   | value
------------------------------
1 | 1 |
2 | 1 | 0.34353
3 | 1 |
4 | 2 |
5 | 2 | 0.23232
6 | 3 |
7 | 3 |
8 | 3 | 1.23234
9 | 3 |

我想将每个组中的可用复制到具有相同 groupID 的所有行,这样我的最终表将如下所示:

ID  | groupID   | value
------------------------------
1 | 1 | 0.34353
2 | 1 | 0.34353
3 | 1 | 0.34353
4 | 2 | 0.23232
5 | 2 | 0.23232
6 | 3 | 1.23234
7 | 3 | 1.23234
8 | 3 | 1.23234
9 | 3 | 1.23234

一组没有固定的行数。我怎样才能做到这一点?

最佳答案

您可以使用更新联接来完成此操作。将您的初始表加入子查询,该子查询标识每个 groupID 的非 NULL 值。引入该信息后,将非 NULL 值列更新为子查询中的值。

UPDATE yourTable t1
INNER JOIN
(
SELECT groupID, MAX(value) AS value
FROM yourTable
GROUP BY groupID
) t2
ON t1.groupID = t2.groupID
SET t1.value = t2.value
WHERE COALESCE(t1.value, '') = ''

更新:

看起来您可能有缺失数据的空字符串,和/或除此之外的 NULL。在这种情况下,MAX() 仍应拾取非缺失数据,但我适本地更改了 WHERE 子句。

关于mysql - 将值从一行复制到具有相同 groupID 的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43491321/

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