gpt4 book ai didi

MySQL:如何用这一记录之前的值更新字段

转载 作者:行者123 更新时间:2023-11-29 22:59:59 26 4
gpt4 key购买 nike

我有一个包含 100 万条记录的大表。我从另一家公司得到这张 table 。所有记录都有一个自动编号 ID 作为主键。许多字段是空的,因为某些记录“属于在一起”(作为一个组),并且这些字段仅填充第一条记录(某种标题记录)。

我想在所有后续记录中填写相同的值,直到该字段不为空(即新记录组中的新“标题”开始的位置)。 (我知道,糟糕的数据库设计,但这就是我得到的,我想在它进入后立即将其转变为更好的数据库设计,这只是实现这一目标的漫长步骤过程中的第一个必要步骤。)

我很难做到这一点。我想按照 id 的顺序更新表,如果特定字段为空,则用上一条记录的值填充它们。

我尝试了不同的解决方案,但结果都不起作用。

我的最后一个:

UPDATE t1
SET f1 =
(SELECT t2.f1 FROM t1 AS t2
WHERE t2.id = t1.id-1) ,
Verzend_tijd=
(SELECT t3.f2 FROM t1 as t3
WHERE t3.id = t1.id-1)
WHERE t2.f1 = ''
ORDER BY t1.id

我收到错误:

您无法在 FROM 子句中指定要更新的目标表“t1”

有人知道如何完成这项工作吗?我也尝试过使用 INNER JOIN,但事实证明我无法在 UPDATE+INNER JOIN 中执行 ORDER BY,而且顺序很重要!

我有点不知所措,谷歌搜索也没有给我带来任何东西。

最佳答案

经过越来越多的谷歌搜索后,我在这个网站上找到了答案:

Mysql Updating a record with a value from the previous record

抱歉给您带来不便

关于MySQL:如何用这一记录之前的值更新字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28544521/

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