From 63edc36870b16ffff57b97780b0452c1b9a0db8d Mon Sep 17 00:00:00 2001 From: Julio Biason Date: Mon, 25 Jan 2021 10:09:44 -0300 Subject: [PATCH] Testing how to make an "in" with SQLite+Python --- lite/lite.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 lite/lite.py diff --git a/lite/lite.py b/lite/lite.py new file mode 100644 index 0000000..6a239af --- /dev/null +++ b/lite/lite.py @@ -0,0 +1,23 @@ +import sqlite3 +import itertools + +names = ['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', + 'nine', 'ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', + 'sixteen', 'seventeen', 'eighteen', 'nineteen', 'twenty'] +groups = itertools.cycle([1, 2, 3]) +ids = itertools.count(1) + +data = zip(ids, names, groups) + +con = sqlite3.connect(':memory:') +cur = con.cursor() +cur.execute('''create table lite (id int, name text, grp int)''') +cur.executemany('INSERT INTO lite values (?,?,?)', data) + +filters = (1,3) +query = 'select name, grp from lite where grp in ({})'.format( + ', '.join('?' * len(filters))) +print(query) + +for record in cur.execute(query, filters).fetchall(): + print(record)