我需要查询表来检查其中一个列中是否存在一个特定的值,并获取相应的行。此值可以存在于为数据库创建的任何表中。要查询的表名是从python列表中获得的。据我所知,我们可以使用‘UNION’和‘SELECT’查询来获取行,但是对于这个表,必须事先知道名称,这样才能构造查询。当列表的大小可能不同时,如何在运行时构造下面提到的查询?例子:
`table_name_list = ['table_name1', 'table_name2','table_name3',....]
query = SELECT col1, col2 FROM table_name_list[0] WHERE col3 ='007'
Union
SELECT col1, col2 FROM table_name_list[1] WHERE col3 ='007'
Union
SELECT col1, col2 FROM table_name_list[2] WHERE col3 ='007'
`
发布于 2018-07-26 11:18:15
可以对字符串使用pythonJoin。我们可以循环表名和构造基本的查询字符串,最后使用联接。
for name in table_name_list: query_string = "SELECT col1, col2 FROM {} WHERE col3 ='007'".format(name) final_query += query_string+' union ' final_query = final_query[0:len(query)-7] # to drop the extra 'union '
https://stackoverflow.com/questions/-100005776
复制相似问题