Python准备语句. SELECT IN的问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python准备语句. SELECT IN的问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1090字,纯文字阅读大概需要2分钟。
内容图文
![Python准备语句. SELECT IN的问题](/upload/InfoBanner/zyjiaocheng/808/9c3b9ae224194a289cb90385b84f469b.jpg)
我在Python中有一个准备好的语句的问题我到目前为止无法解决.
应该执行的查询是:
SELECT md5 FROM software WHERE software_id IN (1, 2, 4)
所以我尝试执行这样的查询:
software_id_string = "(2, 3, 4)"
cursor.execute("SELECT md5 FROM software WHERE software_id IN %s",
software_id_string)
问题是“添加到字符串 – > ‘(2,3,4)’,以便查询将是:
SELECT md5 FROM software WHERE software_id IN ''(2, 3, 4)''
我也试过像这样重建脚本:
software_id_string = " 1 OR software_id = 2"
cursor.execute("SELECT md5 FROm software WHERE software_id = %s",
software_id_string)
这仅适用于将提交的第一个id(在本例中为1),因为OR部分不会作为SQL语句进行处理…
是否有可能用准备好的陈述来解决问题?
解决方法:
参数列表中的每个项目都需要一个占位符.
您可以使用字符串操作来完成该部分:
>为每个参数创建一个%s,和
>用逗号加入这些.
在下一步中,您可以按照DB-API documentation中的建议将两个参数传递给execute().
software_id_string = (1,2,4)
qry = '''SELECT md5
FROM software
WHERE software_id IN (%s)''' % ','.join(['%s']*len(software_id_string))
# // 'SELECT md5 FROM software WHERE software_id IN (%s,%s,%s)'
cursor.execute(qry, software_id_string)
内容总结
以上是互联网集市为您收集整理的Python准备语句. SELECT IN的问题全部内容,希望文章能够帮你解决Python准备语句. SELECT IN的问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。