Python SQLite SELECT LIKE IN [list]

眉间皱痕 提交于 2021-01-27 12:37:06

问题


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%'

回答1:


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.




回答2:


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%'


来源:https://stackoverflow.com/questions/20940332/python-sqlite-select-like-in-list

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!