Python Sqlite3-如何在连接外部使用的变量中存储选择值?
我试图使用一个列表将表中的各个值与每个列表项相匹配,并从另外两个表中计算每次出现的次数。我认为我的代码可以更好地解释它:Python Sqlite3-如何在连接外部使用的变量中存储选择值?,python,list,for-loop,sqlite,zip,Python,List,For Loop,Sqlite,Zip,我试图使用一个列表将表中的各个值与每个列表项相匹配,并从另外两个表中计算每次出现的次数。我认为我的代码可以更好地解释它: def info_check(): conn = sqlite3.connect('database.db')
def info_check():
conn = sqlite3.connect('database.db')
c = conn.cursor()
for ind in zip(address, name, number):
c.execute('''SELECT * FROM table
WHERE Column4 > Column5
AND Column1 = ?
AND Column2 = ?
AND Column3 = ?''', ind)
address_found = c.fetchall()
if len(address_found) >= 0:
for i, j in enumerate(zip(address, name, number)):
if j == ind:
c.execute('''SELECT * FROM table
WHERE Column4 = Column5
AND Column1 = ?
AND Column2 = ?
AND Column3 = ?''', ind)
name_found = c.fetchall()
if len(name_found) >= 0:
for a, b in enumerate(zip(address, name, number)):
if b == ind:
c.execute('''SELECT * FROM table
WHERE Column4 < Column5
AND Column1 = ?
AND Column2 = ?
AND Column3 = ?''', ind)
number_found = c.fetchall()
if len(number_found) >= 2 or len(address_found) >= 2 or len(name_found) >= 2:
print(ind)
print(otherList[i])
print(len(address_found), len(name_found), len(number_found))
def info_check():
conn=sqlite3.connect('database.db')
c=连接光标()
对于邮政编码中的ind(地址、名称、编号):
c、 执行(“”“从表中选择*)
其中第4列>第5列
第1列=?
第2列=?
和第3列=?'',ind)
地址\u found=c.fetchall()
如果len(找到的地址)>=0:
对于枚举中的i,j(邮政编码(地址、姓名、号码)):
如果j==ind:
c、 执行(“”“从表中选择*)
其中Column4=Column5
第1列=?
第2列=?
和第3列=?'',ind)
name_found=c.fetchall()
如果len(找到的名称)>=0:
对于枚举中的a、b(zip(地址、名称、编号)):
如果b==ind:
c、 执行(“”“从表中选择*)
其中第4列<第5列
第1列=?
第2列=?
和第3列=?'',ind)
找到的编号=c.fetchall()
如果len(找到的编号)>=2或len(找到的地址)>=2或len(找到的名称)>=2:
打印(ind)
打印(其他列表[i])
打印(len(找到地址)、len(找到姓名)、len(找到号码))
代码运行良好,满足了我的需要,唯一的问题是我得到了一些项目的重复,有时甚至是同一项目的4个结果
我只是在学习python,我正在努力寻找一种从结果中删除重复项的方法。
我在想,如果我可以将每个Select
值以及它们特定的ind
和I
存储在变量中,我可以在for
循环之外使用这些变量,那可能会删除重复项?每次都必须为它创建一个新变量吗
非常感谢您的帮助;谢谢解决了这个问题,我删除了所有不必要的条件,并首先选择了所有的
变量,然后只使用了一个,如果包含所有变量:
def info_check():
conn = sqlite3.connect('database.db')
c = conn.cursor()
for i, ind in zip(address, name, number):
c.execute('''SELECT * FROM table
WHERE Column4 > Column5
AND Column1 = ?
AND Column2 = ?
AND Column3 = ?''', ind)
address_found = c.fetchall()
c.execute('''SELECT * FROM table
WHERE Column4 = Column5
AND Column1 = ?
AND Column2 = ?
AND Column3 = ?''', ind)
name_found = c.fetchall()
c.execute('''SELECT * FROM table
WHERE Column4 < Column5
AND Column1 = ?
AND Column2 = ?
AND Column3 = ?''', ind)
number_found = c.fetchall()
if len(number_found) >= 2 or len(address_found) >= 2 or len(name_found) >= 2:
print(ind)
print(otherList[i])
print(len(address_found), len(name_found), len(number_found))
def info_check():
conn=sqlite3.connect('database.db')
c=连接光标()
对于邮政编码中的i、ind(地址、姓名、号码):
c、 执行(“”“从表中选择*)
其中第4列>第5列
第1列=?
第2列=?
和第3列=?'',ind)
地址\u found=c.fetchall()
c、 执行(“”“从表中选择*)
其中Column4=Column5
A.