如何修复更新时的条件不起作用问题

2024-05-20 22:50:14 发布

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

我正在尝试使用where条件更新我的表。我不知道我哪里出错了。你知道吗

我在python中使用peewee进行SQL查询。我正在尝试更新具有相同列的两个不同表。查询可以很好地处理表1,但不能处理表2,尽管它们都是相同的。最奇怪的是,没有错误。我还启用了查询日志记录。你知道吗

if x:
   for id in x:
       table1.update(status = 0).where(table1.slab_id == id).execute()
       table2.update(status = 0).where(table2.slab_id == id).execute()

应为:对于提供的id,更新状态为0的表1和表2。 实际:表1已成功更新,而表2的所有值都将更新,而不是只更新一个值。我还记录了以下查询:

('UPDATE `table1` SET `status` = %s WHERE (`table1`.`slab_id` = %s)', [0, 44])
('UPDATE `table1` SET `status` = %s WHERE (`table1`.`slab_id` = %s)', [0, 43])
('UPDATE `table2` SET `status` = %s', [0])
('UPDATE `table2` SET `status` = %s', [0])

'UPDATE `table2` SET `status` = 0 WHERE `table2`.`slab_id` = 43->;有效

对于表2中没有应用条件的情况,我不明白为什么?你知道吗


Tags: idexecutestatus记录updatewhere条件peewee