Python,SQlite3 - 查询条件等于而不是(多个)

时间:2017-02-14 20:29:57

标签: python sqlite

如何在python中查询条件等于某个值的位置,即r.user =(给定的用户ID)以及值为NOT IN(给定的影片ID列表)结果集。

这就是我目前所拥有的

placeholder = '?'  # For SQLite. See DBAPI paramstyle.
placeholders = ', '.join(placeholder * len(l))

query = 'SELECT r.user, r.movie, r.rating, m.title FROM ratings r JOIN movies m ON (r.movie = m.id) ' \
'WHERE r.user = 405 AND r.rating >= 3 AND r.movie NOT IN (%s)' % placeholders

cursor.execute(query, ('405', l))
movies_table = cursor.fetchall()

l引用一个值数组,即所以我可以得到结果集,其中movie id不在值列表中。

非常感谢,

我目前能够得到一个或另一个但不是两个,因为看起来应用的参数数量是多少。

1 个答案:

答案 0 :(得分:1)

您需要在每个占位符中使用一个项目致电cursor.execute()

尝试这样的事情:

cursor.execute(query, tuple(l))

如果您想将405附加到值列表中,那么您可以执行以下操作:

cursor.execute(query, (405, *l))