例如有这么一个查询语句:
select * from server where ip in (....)
同时一个存放ip 的列表 :['1.1.1.1','2.2.2.2','2.2.2.2']
我们希望在查询语句的in中放入这个Ip列表,这里我们首先会想到的是用join来对这个列表处理成一个字符串,如下:
>>> a=['1.1.1.1','2.2.2.2','2.2.2.2'] >>> ','.join(a) '1.1.1.1,2.2.2.2,2.2.2.2'
可以看到,join后的结果并不是我们想要的结果,因为引号的问题。所以我们会想到另外的办法:
>>> a=['1.1.1.1','2.2.2.2','2.2.2.2'] >>> ','.join(["'%s'" % item for item in a]) "'1.1.1.1','2.2.2.2','2.2.2.2'"
同样会有引号的问题,这个时候我们可以通过这个字符串去掉前后的双引号来达到目的。
但是,其实我们还有一种更安全更方便的方式,如下:
>>> a = ['1.1.1.1','2.2.2.2','3.3.3.3'] >>> select_str = 'select * from server where ip in (%s)' % ','.join(['%s'] * len(a)) >>> select_str 'select * from server where ip in (%s,%s,%s)'
这里我们先根据Ip列表的长度来生成对应的参数位置,然后通过MySQLdb模块中的execute函数来执行:
cursor.execute(select_str,a)
这样子就可以了
热门文章
- 2月11日免费VPN节点 | 22M/S|2025年SSR/V2ray/Shadowrocket/Clash免费订阅链接地址
- 2月25日免费VPN节点 | 19.1M/S|2025年Shadowrocket/Clash/SSR/V2ray免费订阅链接地址
- 2月12日免费VPN节点 | 18.6M/S|2025年Clash/V2ray/Shadowrocket/SSR免费订阅链接地址
- 国货猫粮排行榜前十名(2021年国产猫粮推荐与测评)
- 南京哪里领养宠物比较好的地方(南京哪里有领养宠物的地方)
- 动物医院评价怎么写 动物医院评价怎么写范文
- 南京宠物领养中心有哪些地址 南京宠物领养中心有哪些地址和电话
- 动物机体免疫疫苗后体内大量存在的是哪种抗体 动物机体注射疫苗后产生的抗体通常存在哪里?
- 2月10日免费VPN节点 | 20.8M/S|2025年SSR/Clash/Shadowrocket/V2ray免费订阅链接地址
- Vue3实践setup函数详解