python中,编写带in的sql语句,插入python的list变量,实现动态传值。
例如 sql语句是:
select * from space where space.name in ('shanghai','beijing')
若想动态实现in 后的内容,可以试试这样
1,使用tuple插入
city_list=["heifei","nanjing","shanghai"]
sql="select * from space where space.name in {}".format(tuple(city_list))
print(sql)
打印的sql:
select * from space where space.name in ('heifei', 'nanjing', 'shanghai')
注意,使用tuple有个坑,就是若元素只有一个的话,会格式不正确,比如:
city_list=["changchun"]
sql="select * from space where space.name in {}".format(tuple(city_list))
print(sql)
打印的sql 会多一个逗号,
select * from space where space.name in ('changchun',)
2,使用str的join方法
city_list=["heifei","nanjing","shanghai"]
sql="select * from space where space.name in ('{}')".format("','".join(city_list))
print(sql)
打印的sql:
select * from space where space.name in ('heifei','nanjing','shanghai')