【发布时间】:2017-08-24 23:17:01
【问题描述】:
我尝试使用 2 种不同的方式执行 mysql 查询,如下所示:
选项 1:
bankd1= ("SELECT * FROM Bank_loan WHERE id in (%s)" % placeholders)
cur.execute(bankd1)
选项 2:
bankd= "SELECT * FROM Bank_loan WHERE id in (%s)"
cur.execute(bankd, placeholders)
选项 1 始终正常工作。但在选项 2 的情况下,即使数据库中存在记录,有时也无法显示结果(如选项 1 所确认)
关于 python 中的字符串替换或游标如何处理参数,我有什么遗漏吗?
更新:
在以下情况下,选项 1 有效,因为有 ID 81220 的条目
选项 1:
placeholders = '81220, 63266'
选项 2:
placeholders = '63266, 81220'
选项2不起作用,因为没有63266的条目。Mysql只检查字符串中的第一项。
如何提供元组而不是字符串?
使用第一个可行的选项 (bankd1) 很容易。但我想知道提供元组以执行方法的正确方法。
【问题讨论】:
标签: python python-3.x