gpt4 book ai didi

mysql - 更新 SQL 查询以根据同一表中的 ID 更改字段

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

我在数据库中有一个名为“菜单”的表。以下是该表中的字段:

`ID`,
`CompanyID`,
`MenuName`,
`MenuLink`,
`ImageLink`,
`ListOrder`,
`Popup`,
`Target`,
`ParentMenuID`,
`IsActive`,
`IsAdmin`

正如您从第一张图片中看到的,MenuName 包含所有不同菜单的列表。

enter image description here

这有点复杂,所以我希望我能正确解释这一点。请参阅 CompanyID 等于 99 的行。在第二个图像中,ID 等于 1807。

enter image description here

现在,在第三张图中,可以看到当 CompanyID 也等于 99 时,ParentMenuID 如何设置为 1807。因此,当 MenuName = Public Holidays 时,我需要设置字段 ParentMenuID。当 MenuName = Lookups 时,我从 ID 中获取此值。所以我的问题是如何在 MenuName = Public Holiday 时设置所有 ParentMenuID 字段以匹配 MenuName = Lookups 时的 ID 字段。

enter image description here

您可以查看第三张图片的其他 ParentMenuID 字段是否等于 1。我在该表中有近 100 行,无法一次全部更新它们。是否有 SQL 查询可以提供帮助?

最佳答案

所以您想要更新 MenuName 为“Public Holidays”的所有行,并将 ParentMenuID 设置为 MenuName 为“Lookups”的行的 ID 和相同的 CompanyID?尝试这个查询:

UPDATE Menu p
INNER JOIN Menu l ON (l.CompanyID = p.CompanyID)
SET p.ParentMenuID = l.ID
WHERE p.MenuName = 'Public Holidays' -- Fixed Spelling
AND l.MenuName = 'Lookups'

正如我在这里有点猜测,我建议您首先备份数据,或者先在一小部分数据上进行测试,看看它是否真的按照您想要的方式工作。

Syntax borrowed from this question on dba

关于mysql - 更新 SQL 查询以根据同一表中的 ID 更改字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31241178/

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