如何在SQL中实现WHERE IN参数化编译

分类:编程技术 时间:2024-02-20 15:26 浏览:0 评论:0
0
本文主要向您展示“如何在SQL中实现WHERE IN参数化编译”。内容简单、易懂、清晰。希望可以帮助您解答疑惑。让小编带领大家学习和学习《SQL如何实现WHERE IN参数化编译》这篇文章。

示例

业务需求需要通过SQL语句从资产表中查询域名字段(“thief.one”,“如何对“nmask.cn”、“sec.thief.one”范围内的数据库记录编写SQL语句?

拼接方式(错误)
< /p>

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"打印sqlprint值

说明:通过参数化传入where in后面的查询内容。表面上看没有问题,但是在编译过程中,("thief.one", "nmask.cn", "sec.thief.one") 会被当成一个字符串整体,并作为查询条件,它将满足不兼容的要求。

参数化2(正确)

values ​​= ("thief.one"," nmask .cn","sec.thief.one")sql = "从 ({}) 中的域的资产中选择 *".format(",".join(['%s' for i in values]))print sqlprintvalues

说明:通过计算values中字符串的个数来动态构造编译参数。

以上就是《如何在SQL中实现WHERE IN参数化编译》一文的全部内容。感谢您的阅读!我相信相信大家都有了一定的了解,希望分享的内容对大家有所帮助。如果您想了解更多知识,请关注行业资讯频道!

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > 如何在SQL中实现WHERE IN参数化编译

用户评论