这个sql有什么问题

时间:2014-12-26 12:34:36

标签: python mysql sql

我想更新表'my_table'中的字段,但它会报告:

ProgrammingError: (1064, 'You have an error in your SQL syntax; ...

PS:values是一个字符串列表len(values) == len(fields) sql 的表达式为:  'update my_table set field_a=\\'%s\\',field_b=\\'%s\\',field_c=\\'%s\\',field_d=\\'%s\\'' 由于len(fields)在运行程序时可能会发生变化,因此我使用以下代码:

field_str = ''
for field in fields:
    field_str += (field + "='%s',")
field_str = field_str[: -1]
sql = "update %s set %s" % (my_table, field_str)
values = [current_response_dict[site][info_type] for site in site_list for info_type in self.all_info_type]
cursor.execute(sql, values)
conn.commit()

1 个答案:

答案 0 :(得分:0)

'是不必要的。你有一个没有where - 条款的更新吗?

sql = "update %s set %s" % (my_table, ','.join('%s=%%s' % f for f in fields))
values = [current_response_dict[site][info_type] for site in site_list for info_type in self.all_info_type]
cursor.execute(sql, values)
相关问题