最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
SQL WHERE IN参数化编译写法简单示例
时间:2022-06-29 09:02:41 编辑:袖梨 来源:一聚教程网
本篇文章小编给大家分享一下SQL WHERE IN参数化编译写法简单示例,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
例子
业务需求,需要通过SQL语句从asset资产表中查询域名字段在(“thief.one”,”nmask.cn”,”sec.thief.one”)范围内的数据库记录,SQL语句该怎么写呢?
拼接法(错误)
values = "'thief.one','nmask.cn','sec.thief.one'"
sql = "select * from asset where domain in ("+values+")"
print sql
说明:通过将搜索条件以字符串拼接的方式构造sql语句,语法上可通过,但存在着安全隐患(参照sql注入漏洞)
参数化1(错误)
values = (("thief.one","nmask.cn","sec.thief.one"),)
sql = "select * from asset where domain in %s"
print sql
print values
说明:通过参数化方式,将where in 后面的查询内容传入。表面上看没问题,但在编译过程中,会将(“thief.one”,”nmask.cn”,”sec.thief.one”)整体看成一个字符串,而作为查询条件,与需求不符合。
参数化2(正确)
values = ("thief.one","nmask.cn","sec.thief.one")
sql = "select * from asset where domain in ({})".format(",".join(['%s' for i in values]))
print sql
print values
说明:通过计算values里面字符串个数,动态构造编译的参数。
相关文章
- 施瓦辛格宣布:《王者柯南》电影2027年正式启动拍摄 05-22
- Outlook如何设置任务提醒 05-22
- OPPO手机如何用微信深度扫描功能:彻底清理无用图片的方法 05-22
- ChatGPT Plus 怎么升级?2026年最新实操流程 05-22
- 《聪明开局吧》第289关舟放通关指南:舟放关卡10个常用字查找图文详解 05-22
- 歪漫科技-漫画新入口 05-22