我有两个表,一个名为'guilds',另一个名为*'guild_colours'*。 * guild_colours *中的字段是 id 和 color (IE:1:FFFFFF,2:000000 ..),表 guilds 包含颜色的十六进制值。由于* guilds_colours *内部的可用颜色不断变化(但以前可用的颜色是可以接受的)。
当用户决定更改公会的颜色时,我需要运行UPDATE查询。我开始想出类似的东西
UPDATE guilds g
SET g.primarycolour = (SELECT colour FROM guild_colours WHERE id = ? ),
g.secondarycolour = (SELECT colour FROM guild_colours WHERE id = ?)
WHERE g.id = ?
我想知道我能做的更快吗?
答案 0 :(得分:2)
试试这个
UPDATE guilds AS g
SET g.primarycolour = (
SELECT c.colour FROM table_name AS c
WHERE c.id = 1
), g.secondarycolour = (
SELECT c.colour FROM table_name AS c
WHERE c.id = 2
)
WHERE g.id = 1
注意:我没有测试它。