如何在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不在值列表中。
非常感谢,
我目前能够得到一个或另一个但不是两个,因为看起来应用的参数数量是多少。
答案 0 :(得分:1)
您需要在每个占位符中使用一个项目致电cursor.execute()
。
尝试这样的事情:
cursor.execute(query, tuple(l))
如果您想将405
附加到值列表中,那么您可以执行以下操作:
cursor.execute(query, (405, *l))