SQL:选择许多列中的一列包含'x'并且结果不"NULL"



我有一段代码,我意识到它可能效率很低,尽管我不确定如何改进它。

基本上,我有一个这样的数据库表:

示例数据库表

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 个查询的事实可能效率非常低。

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)

最新更新