【问题标题】:looping zipped list for variables in sql query循环 sql 查询中变量的压缩列表
【发布时间】:2017-03-25 10:04:49
【问题描述】:

我有一个要更新的表,column1 是主键

| chute | five |
|-------|------|
| Fa01  | null |
|-------|------|
| Fa02  | null |
|-------|------|
| Fa03  | null |
|-------|------|

我想根据第 1 列中的键使用数据列表更新第 2 列。

sort_list = [('10.0','Fa01'),('23.0','Fa02'),('35.0','Fa03'),('9.0','Fa04')]

query = "UPDATE ship_divert SET five = %s, WHERE chute = %s"
cursor.executemany(query,sort_list)

但是当我运行包含此查询的函数时出现以下错误

'...for the right syntax to use near 'WHERE chute = 'Fa01''

我已经在我的 mysql 控制台上测试了没有变量的查询,它可以工作

UPDATE ship_divert   
SET five='28.0'  
WHERE chute = 'Fa02'

我的脚本中哪里的语法不正确?

【问题讨论】:

    标签: python mysql list nested


    【解决方案1】:

    你需要删除sql中的,

    query = "UPDATE ship_divert SET five = %s, WHERE chute = %s"
                                             ^
    

    【讨论】:

      【解决方案2】:

      使用此查询,您可以在一个查询中完成。这会快得多。在示例中,我只有 3 个值。

      INSERT INTO ship_divert (chute,five)
      VALUES (
          ('Fa01','10.0'),
          ('Fa02','23.0'),
          ('Fa03','35.0'),
      ) ON DUPLICATE KEY UPDATE five=VALUES(five);
      

      【讨论】:

        猜你喜欢
        • 2012-05-23
        • 1970-01-01
        • 1970-01-01
        • 2016-02-01
        • 1970-01-01
        • 2021-07-27
        • 2020-07-16
        • 2014-07-01
        • 2010-10-30
        相关资源
        最近更新 更多