On Tuesday, 4 February, 2020 17:23, J. King <jk...@jkingweb.ca> wrote:
>Not everyone has access to carrays and intarrays, either, such as PHP >users like myself. Then you should probably be creating a temporary table and using that/ begin immediate; create temporary table inlist(x primary key(x)) without rowid; insert into temp.inlist values (?); -- for each value you want in your IN list, one after each commit; select ... from ... where x IN (select x from temp.inlist); drop table temp.inlist; In Python one would do something like: bloodybiglist = [...] cursor.execute('begin immediate;') cursor.execute('create temporary table inlist(x primary key(x)) without rowid;') cursor.executemany('insert into temp.inlist values (?);', list(tuple((x,)) for x in bloodybiglist)) cursor.execute('commit;') cursor.execute('select ... from ... where x in (select x from inlist);') cursor.execute('drop table temp.inlist;') In other interface wrappers you would still have to bind the parameters one at a time. Cannot you prepare a statement in PHP (eg, the insert statement) and loop though binding the parameters and executing the prepared statement one binding parameter by each? eg: stmt = prepare('insert into temp.inlist values (?);') for item in bloodybiglist: stmt.bind(stmt, 1, item) stmt.execute() Which is what executemany does behind the curtain ... -- The fact that there's a Highway to Hell but only a Stairway to Heaven says a lot about anticipated traffic volume. _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users