我有一段代码我意识到可能效率很低,尽管我不确定如何改进它。
基本上,我有一个像这样的数据库表:
A到G列中的任何一列或几列都可能与我的搜索查询匹配。如果是这种情况,我想从该行中查询VALUE
。不过,我需要VALUE
不等于NULL
,因此,如果是这样,应该继续寻找。如果我的查询是abc
,我想获得correct
。
下面是我当前的代码,使用名为db
的数据库和表table
。
cur=db.cursor()
data="123"
fields_to_check=["A","B","C","D","E","F","G"]
for field in fields_to_check:
"SELECT Value FROM table WHERE {}='{}'".format(field,data)
query=cur.fetchone()
if query and query !="NULL":
break
db.close()
我认为执行8个查询这一事实可能效率很低。
答案 0 :(得分:0)
cur=db.cursor()
data="123"
fields_to_check=["A","B","C","D","E","F","G"]
sub_query = ""
for field in fields_to_check:
sub_query = sub_query + "or {}='{}' ".format(field,data)
if sub_query:
query = "SELECT Value FROM table WHERE ("+ str(sub_query[2:]) +") and value IS NOT NULL;"
if query:
cur.execute(query)
rows = cur.fetchall()
if rows:
for row in rows:
print(row)