不使用硬编码列名更新查询

2024-05-15 03:03:57 发布

您现在位置:Python中文网/ 问答频道 /正文

假设mytable有5列,id是第一列。你知道吗

是否可以在不硬编码列名的情况下执行UPDATE?你知道吗

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

我在大多数地方都找不到。你知道吗

sqlite3的预期用例:

row = (4, "hello", 31.12, 4141.12, "gjhg")
c.execute('UPDATE mytable VALUES(?) WHERE id = ?', row, row[0])

Tags: idhello编码execute地方mytable情况update
1条回答
网友
1楼 · 发布于 2024-05-15 03:03:57

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

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

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

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

希望这能给你更多的信息。你知道吗

相关问题 更多 >

    热门问题