Python Mysqldb用变量更新操作

时间:2013-11-15 21:46:50

标签: python mysql mysql-python

我有一个(也许很简单)的问题,但我自己找不到解决方案......

数据库包含链接。这些包括数字。 现在我想在单独的列“nummer”中插入每个链接中包含的数字。

以下适用于一个号码。

现在我想在几个数字上使用for-loop并从所有链接中提取数字并将其写入“Nummer”字段。

如何使用%i或%d进行修改?

提前感谢您的帮助!

import MySQLdb

connection = MySQLdb.connect(
    host="192.168.0.101",
    db='xxxxxxx',
    user="xxxxxxx", passwd="xxxxxxx"
    )
connection.apilevel = "2.0"
connection.threadsafety = 2
connection.paramstyle = "format" 

cursor=connection.cursor()

sql="UPDATE analysen SET Nummer = 247687  WHERE `Link` like '%247687%'"  
cursor.execute(sql)
connection.commit()

1 个答案:

答案 0 :(得分:1)

要对多个数字进行for循环,它只是for n in numbers:

唯一棘手的问题是如何参数化LIKE查询。执行此操作的方法是将正常的%s参数放入查询中,然后将参数 value 包装在%个字符中。所以:

sql = "UPDATE analysen SET Nummer = %s WHERE Link like %s"
for n in numbers:
    cursor.execute(sql, [n, '%{}%'.format(n)])

或者:

sql = "UPDATE analysen SET Nummer = %s WHERE Link like %s"
cursor.executemany(sql, ([n, '%{}%'.format(n)] for n in numbers)