gpt4 book ai didi

mysql - 如何让MySQL中这个重复的Update语句变得更短?

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

我在 MySQL 中有这个 Update 语句,它使用 select 语句更新多个列。

UPDATE TableA
SET ColumnA =
(
SELECT TableB.ColumnA
FROM TableB
WHERE (TableB.ColumnX = 0 AND TableB.id = TableA.fk_id)
)
,ColumnB =
(
SELECT TableB.ColumnB
FROM TableB
WHERE (TableB.ColumnX = 0 AND TableB.id = TableA.fk_id)
)
,ColumnC =
(
SELECT TableB.ColumnC
FROM TableB
WHERE (TableB.ColumnX = 0 AND TableB.id = TableA.fk_id)
)

它工作正常并且简单易懂。然而,它违反了 DRY(不要重复自己)原则。 WHERE 子句重复。在代码审查练习中它看起来不太好。如何以不违反DRY原则的方式重写这条MySQL语句?

最佳答案

UPDATE TableA a INNER JOIN TableB b
ON b.ColumnX = 0 AND b.id = a.fk_id
SET a.ColumnA = b.ColumnA, a.ColumnB = b.ColumnB, a.ColumnC = b.ColumnC;

MySQL更新语法允许组合多个表:http://dev.mysql.com/doc/refman/5.0/en/update.html

关于mysql - 如何让MySQL中这个重复的Update语句变得更短?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26816477/

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