python - 自动生成用 SQL 编写的 SQL 脚本,而不是 Python 中的函数
问题描述
所以我有这个巨大的值列表,我想在 SQL 上创建这个表,在其中我选择具有这些特定值的列(所以这最终是一个非常长的WHERE val
和OR LIKE
语句的脚本。
现在我已经用 Python 编写了它来自动执行此操作;但是,是否可以在 SQL 查询本身中执行相同的操作。
def list_to_like_query(query_list, table_column):
statement = ''
for item in query_list:
if statement == '':
statement = "WHERE {column} LIKE '%{item}%'".format(column=table_column, item=item)
else:
statement = "{statement} OR {column} LIKE '%{item}%'".format(statement=statement, column=table_column, item=item)
return statement
然后我会调用该函数为我生成 sql 脚本
sql_filter_statment = list_to_like_query(value_list, 'colA')
为了让事情不那么冗长,说value_list
由 5 个值组成
value_list = ['Sam', 'Smith', 'John', 'Rachel', 'Christina']
那么它将输出以下内容:
WHERE
colA LIKE 'Sam'
OR coLA LIKE 'Smith'
OR colA LIKE 'John'
OR colA LIKE 'Rachel'
OR colA LIKE 'Christina'
但是,是的,这可以用 SQL 本身动态编写吗
编辑:忘记提及通过该list_to_like_query
方法传递的列表是通过从另一个 SQL 表中检索不同的值创建的