我有一个python列表,说我
l = [1,5,8]
我想编写一个SQL查询来获取列表中所有元素的数据,例如
select name from students where id = |IN THE LIST l|
我该如何完成?
到目前为止,答案一直是将这些值模板化为纯SQL字符串。这对于整数绝对没问题,但是如果我们想对字符串执行此操作,则会遇到转义问题。
这是一个使用参数化查询的变体,它对两个都适用:
placeholder= '?' # For SQLite. See DBAPI paramstyle. placeholders= ', '.join(placeholder for unused in l) query= 'SELECT name FROM students WHERE id IN (%s)' % placeholders cursor.execute(query, l)