最新下载
热门教程
- 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里面字符串个数,动态构造编译的参数。
相关文章
- 今日XRP新闻:随着Ripple在7月行动中释放5亿代币,XRP强势维持在2.20美元上方 07-06
- 炉石传说茶壶星舰萨卡组构筑分享 07-06
- 明日方舟终末地能量淤积点消除方法 07-06
- 2025年炒币平台app哪个好?国内最新炒币软件APP排行榜一览 07-06
- 燕云十六声到此一坐成就达成方法 07-06
- 鬼谷八荒器灵法宝搭配选择推荐 07-06