Seemed mysqldb
没有明确的方式来使用in
声明
execute('select * from test where id in(%s)','1,2,3')
将获得querysql="select * from test where id in ('1,2,3')"
这显然不是我想要的。现在,我必须多次使用execute
方法并将fetchall
结果附加在一起。
有没有更好的方法呢?
答案 0 :(得分:2)
试试这个:
data = [1,2,3] # stores the data
in_part = ','.join(['%s'] * len(data)) # prepares formatting string
execute('select * from test where id in(' + in_part + ')', data)
答案 1 :(得分:0)
如果你有一个数字列表,你可以使用它:
execute('select * from test where id in ({0},{1},{2})'.format(1, 2, 3))
# query 'select * from test where id in (1,2,3)'
如果另一方面你有一个字符串使用这个:
execute('select * from test where id in ({0})'.format('1, 2, 3'))
# query 'select * from test where id in (1, 2, 3)'