最新下载
热门教程
- 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里面字符串个数,动态构造编译的参数。
相关文章
- 以闪亮之名星彩幻梦礼包怎么样 以闪亮之名星彩幻梦外观礼包介绍 11-01
- 永劫无间手游10.31有什么更新 11-01
- 王者荣耀老夫子百相守梦怎么样 11-01
- 仙剑世界白藏技能图鉴一览 11-01
- 《今日校园》绑定微信方法 11-01
- 《今日校园》修改个人资料方法 11-01