UPDATE查询没有硬编码列名称

问题描述 投票:0回答:1

让我们说mytable有5列,id是第一列。

是否可以在不对列名进行硬编码的情况下执行UPDATE

UPDATE mytable VALUES(4, "hello", 31.12, 4141.12, "gjhg") WHERE id = 4

我还没有在大多数tutorials找到它。

sqlite3所需的用例:

row = (4, "hello", 31.12, 4141.12, "gjhg")
c.execute('UPDATE mytable VALUES(?) WHERE id = ?', row, row[0])
python sql sqlite
1个回答
0
投票

据我所知,你不能这样做。根据https://sqlite.org/lang_update.html

但是,还有其他编写查询的方法:https://stackoverflow.com/a/13482298/7791653

您可以自己生成查询。 首先,选择所有列名称并执行for循环,在其中构建类似“column1,column1,column1”的String,并将其添加到查询的适当位置。你所要做的就是这样

"UPDATE users
SET  (" + generatedQueryPart = ")
   = ('value1', 'value2', 'value3') 
WHERE some_condition ";

希望这能为您提供更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.