Python中execute的SQL语句的分次合成

Python中execute的SQL语句的分次合成,第1张

Python中SQL语句的分次合成

在python执行sql语句时,需要事先准备。有时候会喷到比较复杂的参数填入时,似乎无法一步到位,这个时候,可以考虑分步写入。

比如以下一个sql输入:
需要一个范围清单,以及一个指定时间值。

sql = "Select ... from DB where col in (A) and myDatetime>(B)"

这个sql字符串,考虑使用分布填写比较容易 *** 作。

第一步:

sql = "Select ... from DB where col in (A)..." #请查找一下将list中的值填写入字符串的方法,是一个格式化的手段进行的

提供两个找到的格式化方式

#提供两个找到的格式化方式
Test_list = ['a','b','c']
sql = "select * from DB where col in ('%s')"% ("','".join(Test_list))
print(1,sql)

sql = "select * from DB where col in (%s)" % ','.join(["'%s'" % item for item in Test_list])
print(2,sql)

第二步:

	sql += " where myDatetime>%s"%(str_yourSettingTime)
	cursor = connections['dbname'].cursor()
	cursor.execute(sql)

其中第一步的目的就是将查询字符串到第二步之前,就以及包含了所有list元素,到了第二步就可以把sql作为一个已知的字符串进行 *** 作了。

当然,也可以将第二个参数作为execute的参数部分输入。

	sql += " where myDatetime>%s"
	tup_Para =(str_yourSettingTime,)
	cursor = connections['dbname'].cursor()
	cursor.execute(sql,tup_Para)

注意前面sql的那个hwere前的空格,以及tup_Para的括号中的那个逗号‘,'。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/873585.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-13
下一篇 2022-05-13

发表评论

登录后才能评论

评论列表(0条)

保存