gpt4 book ai didi

mysql - 使用同一行的值更新表

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

我有一张这样的 table

id     Name   Parent_id   Text
1 x 0
2 y 1
3 Z 1
4 A 2
5 B 0

现在我想根据 parent_id 使用列名称的文本填充该列。如果 parent_id 为 0 文本值将是同一行的名称而不是 id parent_id!=0 它必须找到正确的名称

这是我想要实现的输出

id     Name   Parent_id   Text
1 x 0 x
2 y 1 x
3 z 1 x
4 a 2 y
5 b 0 b

有人可以帮我吗?

最佳答案

首先,编写一个返回行的 SELECT 语句,以及您要分配的值。像这样:

SELECT t.id                            AS t_id
, t.parent_id AS t_parent_id
, t.name AS t_name
, p.id AS p_id
, p.name AS p_name
, t.text AS t_text_old
, IF(t.parent_id=0,t.name,p.name) AS t_text_new
FROM tlt t
LEFT
JOIN tlt p
ON p.id = t.parent_id

并非 SELECT 列表中的所有列都是必需的,但我发现检查结果以确认语句是否正确很有帮助。

一旦您使 SELECT 语句工作,返回您想要分配给列的新值,将其转换为 UPDATE 语句。

替换 SELECT ... FROM使用关键字 UPDATE , 并添加 SET紧接在 WHERE 之前的子句子句(如果没有 WHERE 子句,则在语句末尾。

UPDATE tlt t
LEFT
JOIN tlt p
ON p.id = t.parent_id
SET t.text = IF(t.parent_id=0,t.name,p.name)

关于mysql - 使用同一行的值更新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36238894/

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