我有一个超过2000个元素的python列表。我有一个postgress表,我需要查询这些元素中的每一个,我目前使用以下内容。
cur.execute("SELECT * FROM patent_info WHERE patentno = ANY (%s);", (list_of_patent,))这样做的目的是针对列表中的每个元素逐个查询表,然后使用以下命令将这些数据存储在一个数据帧中
data = cur.fetchall()问题是,对于超过2000个元素,响应需要一段时间才能生成,有时会导致我的webapp超时或浏览器超时。
我正在寻找一种方法来更快或更高效地查询表中的所有元素。
我考虑过对列表中的每个元素都使用for循环,并使用cur.fetchone(),但我认为这样会更慢。
发布于 2017-08-29 19:46:11
代之以执行join:
cursor.execute("""
select *
from
patent_info
inner join
unnest(%s) u(patentno) using (patentno)
""", (list_of_patent,))https://stackoverflow.com/questions/45928155
复制相似问题