时间:2021-05-22
直接给出例子说明:
cs = conn.cursor()img_ids = [1,2,3]sql = "select img_url from img_url_table where id in %s"cs.execute(sql, (img_ids, )) # 直接传递元组包裹列表即可补充知识:Python将多行数据处理成SQL语句中where条件in(' ',' ',' ')的数据
在工作中有时需要查询上万行指定的数据,就会用到SQL语句中 select * from table1 where table1.name in (' ' , ' ' ) 的条件查询,所以自己写了个小小的Python脚本来处理这多行数据,废话不多说,上代码:
初级代码:
old_data = open("old_data.txt","r")new_data = open("new_data.txt","w")for line in old_data: line=line.strip('\n') new_data.write("'"+line+"',")old_data.close()new_data.close()升级代码:
with open('old_data.txt','r') as f1: with open('new_data.txt','w') as f2: for line in f1: line = line.strip('\n') f2.write("'" + line + "',")两种代码的效果都是一样的,使用open()函数,最后一步就要手动写调用close()方法,比较麻烦,所以升级后使用with 语句,这样Python就帮我们自动调用close()方法。
效果如下:
不足:处理后的数据应去掉最后一个逗号,这样才是最完整的SQL语句符合where in()条件的数据。
以上这篇浅谈pymysql查询语句中带有in时传递参数的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
由于考虑到数据库的安全性,不被轻易SQL注入,执行查询语句时,一般不使用直接拼接的语句,而是使用参数传递的方法。然后在使用参数传递的方法中时,发现当使用like
${param}传递的参数会被当成sql语句中的一部分,比如传递表名,字段名例子:(传入值为id)orderby${param}则解析成的sql为:orderb
SqlParameter带参数的增删改查语句,可以防止注入.有时候写sql语句的时候会根据方法传进来的参数来判断sql语句中where条件的参数.一般方法DAL
本文介绍MySQL数据库中执行select查询语句,查询指定列的数据,即指定字段的数据。再来回顾一下SQL语句中的select语句的语法:Select语句的基本
慢日志查询作用慢日志查询的主要功能就是,记录sql语句中超过设定的时间阈值的查询语句。例如,一条查询sql语句,我们设置的阈值为1s,当这条查询语句的执行时间超