【发布时间】:2017-10-18 00:58:13
【问题描述】:
我在使用列表中的新值更新表时遇到问题。
我的数据如下所示:
id value_1 value_2
1 11 21
2 32 41
3 43 84
...
我已经用 INSERT 命令在表中写入了列 id 和 value_1。在这一步,我无法写入 value_2 列,因为我还需要计算它,所以我想稍后用 value_2 列的值数组更新表。
我想要这样的代码:
UPDATE table_name SET value_2 = (21,41,84) WHERE id IN (1,2,3)
不幸的是,不可能像这样从列表中设置 value_2,它仅适用于单个值。
我得到了一个解决方法,即在整个 UPDATE 查询上编写一个 for 循环,但这对我的程序来说太慢了。 任何人都可以建议我如何使其正常工作?
整个查询都是用 Python 执行的。
【问题讨论】:
-
你需要做 3 x
UPDATE -
这就是
UPDATE语句的工作方式。它可以修改多行,但会将所有行的字段value_2设置为相同的新值。您描述的功能在 SQL 中不存在。您必须发出 3 个不同的UPDATE查询才能将三行的字段value_2更改为三个不同的值。 -
@InnovaITveSolutions 请注意,您不需要在标题中添加标签信息。
-
我认为你可以查询一个数据列表并使用 group_concat() 创建一个动态查询,然后执行它们。
标签: mysql sql mysql-python