for循环使用mysql语句

时间:2017-03-28 09:21:56

标签: python mysql pymysql

我在python中使用pymysql来处理mysql服务器,并且我需要对不同列进行一些交叉引用。

为此,我在python中应用for循环,

for i in range(10):
    sqlstat = 'select refs from `pcite` where id = id_paper(i) ;'

但这不起作用。问题似乎是迭代器i。有办法解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

正如我在评论中所说,这与循环无关。只是你的代码不是代码,而只是一个字符串。如果你需要一个字符串来包含调用函数的结果,那么你需要在字符串之外进行调用,并插入结果:

sqlstat = 'select refs from `pcite` where id = {};'.format(id_paper(i))

但请注意,由于这是一个SQL语句,因此您根本不应该插值,而是将它们传递给execute方法:

sqlstat = 'select refs from `pcite` where id = %s;'
cursor.execute(sqlstat, [format(id_paper(i)])