Reputation: 1773
How to write SQL query in Python to select elements LIKE IN Python list?
For example, I have Python list of strings
Names=['name_1','name_2',..., 'name_n']
and SQLite_table.
My task is to find shortest way to
SELECT elements FROM SQLite_table WHERE element_name LIKE '%name_1%'
SELECT elements FROM SQLite_table WHERE element_name LIKE '%name_2%'
...
SELECT elements FROM SQLite_table WHERE element_name LIKE '%name_n%'
Upvotes: 3
Views: 6015
Reputation: 2141
You would need a regular expression of the form name_1|name_2|name_3|…
, which you can generate using '|'.join(Names)
:
SELECT elements FROM SQLite_table WHERE element_name REGEXP 'name_1|name_2|name_3|…|name_n'
Check How do I use regex in a SQLite query? for instructions on how to use regular expressions in SQLite.
Upvotes: 5
Reputation: 292
Mmhh
Names=['name_1','name_2','name_n']
for i in Names:
sql = "SELECT elements FROM SQLite_table WHERE element_name LIKE '%" + i + "%'"
print sql
SELECT elements FROM SQLite_table WHERE element_name LIKE '%name_1%'
SELECT elements FROM SQLite_table WHERE element_name LIKE '%name_2%'
SELECT elements FROM SQLite_table WHERE element_name LIKE '%name_n%'
Upvotes: 3