仅更新选项卡上的一行

2024-09-26 18:10:57 发布

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

请注意,我想当我选择Car\ u number时行相应的改变,但是当代码执行所有数据时(所有行都改变)

self.cur.execute('''
  UPDATE car_info 
  SET car_number=%s,owner_company=%s,branch=%s,service_mode=%s,shaceh_number=%s,motor_number=%s,fuel_type=%s,car_type=%s,car_model=%s,car_load=%s,car_weight=%s,car_shape=%s,car_color=%s
  ''',(car_number, owner_company, branch, service_mode, shaceh_number, motor_number, fuel_type, car_type, car_model,car_load, car_wight, car_shape, car_color)
)

self.db.commit()

Tags: selfbranchnumbermodelmodetypeserviceload
2条回答

要将更新限制为影响一个特定行,必须使用WHERE语句。WHERE必须引用索引列。在大多数情况下,这将是一个UNQIUE键,用于标识特定的行

如果在您的案例中,唯一索引是car\u编号,那么您可以使用如下内容:

UPDATE car_info SET XXXX WHERE car_number=YYYY

这将把您的更新查询限制到car\ u number等于YYYY的单行

我认为您实际上希望向查询中添加一个WHERE子句来选择要更新的相关记录。这也意味着您需要对绑定值进行不同的排序:

self.cur.execute('''
    UPDATE car_info SET
        owner_company=%s,
        branch=%s,
        service_mode=%s,
        shaceh_number=%s,
        motor_number=%s,
        fuel_type=%s,
        car_type=%s,
        car_model=%s,
        car_load=%s,
        car_weight=%s,
        car_shape=%s,
        car_color=%s 
    WHERE car_number=%s''',
    (
        owner_company, 
        branch, 
        service_mode, 
        shaceh_number, 
        motor_number, 
        fuel_type, 
        car_type, 
        car_model,
        car_load, 
        car_weight, 
        car_shape, 
        car_color,
        car_number
    )
)

相关问题 更多 >

    热门问题