SQL WHERE IN参数化编译写法简单示例
文章主要给大家介绍了关于SQL WHERE IN参数化编译写法的相关资料,文中通过示例代码介绍的非常详细,需要的朋友们下面来一起学习学习吧...
前言
最近在一次使用sql中的where in语句时,造成了一些非预期的查询结果。尤其是在代码中去编写并执行sql语句时,会出现一些意外情况。再查阅了一些资料以及手动测试后,发现是自己sql语句写法存在问题,在此记录。
例子
业务需求,需要通过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里面字符串个数,动态构造编译的参数。
总结
以上就是SQL WHERE IN参数化编译写法简单示例文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值。
-
html5 canvas 实现光线沿不规则路径运动实例代码
文章主要介绍了html5 canvas 实现光线沿不规则路径运动,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下。g让动画沿着不规则路径运动查阅svg文档后发现,svg动画...
-
中文转换成html中的utf-8的方法实例代码
文章主要介绍了中文转换成html中的utf-8的方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下在HTML中,中文的“好好学习”可...
-
html实现简单ListViews效果的实例代码
文章主要介绍了html实现简单ListViews效果的实例代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下html实现简单Li...
-
CSS3 translate导致字体模糊的实例代码
文章主要介绍了CSS3 translate导致字体模糊的实例代码,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧今日客户反馈,发现 使用了 translate会导致字体模糊。.media-body-b...
-
关于CSS中@support实现渐进式网页设计实例代码
文章主要给大家介绍了关于CSS中@support实现渐进式网页设计的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用CSS具有一定的参考学习价值前言特性查询赋予了我们...
-
HTML6实现折叠菜单与手风琴菜单的实例代码
文章主要介绍了HTML6实现折叠菜单与手风琴菜单的实例代码,需要的朋友可以参考下。页面主体部分:<body><ul id="menu"> <li> <a href="#">一级菜单1</a> <ul> <li>二级...
-
html 仿百度百科导航下拉菜单功能实例代码介绍
文章主要介绍了html 仿百度百科导航下拉菜单功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下。html 仿百度百科导航下拉菜单功能,具...
-
WINDOWS下安装MYSQL数据库教程详解
文章主要介绍了WINDOWS下安装MYSQL教程,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下。1、下载安装包-根据自己电脑系统选择合适的版本:htt...
-
django2.2版本连接mysql数据库的方法
文章主要介绍了django2.2版本如何连接mysql数据库,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下。一、运行项目报错信息如下:File "/home/p...
-
mysql数据库实现多表关联统计、子查询统计示例
文章主要介绍了mysql实现多表关联统计(子查询统计),结合具体案例形式分析了mysql多表关联统计的原理、实现方法及相关操作注意事项,需要的朋友可以参考下。本文实例讲述了my...