我有一个(也许很简单)的问题,但我自己找不到解决方案......
数据库包含链接。这些包括数字。 现在我想在单独的列“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()
答案 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)