在SQLite数据库中查找值

时间:2018-08-16 13:33:35

标签: python sqlite

我有一个sqlite数据库,该数据库有一个表和该表中的4列。它是一个大约60GB的大型sqlite数据库文件。

我有一个单独的较小的csv文件,它只有一列和大约10行。

如何检查较小的csv文件中的值是否也在sqlite数据库中,如果找到该行,则返回该行?

这是一些示例代码,但我仍然坚持如何将csv文件中的值与sqlite数据库的第2列中的值进行比较。

conn = sqlite3.connect( 'database.db')
c = conn.cursor()
conn.commit()
c.execute(""" SELECT name, number,zip 
from table """)
query = c.fetchall()

with open('smaller.csv','r') as smallerfile:
    with open('output','w') as output:
    reader = csv.reader(smallerfile)
    writer = csv.writer(output)

1 个答案:

答案 0 :(得分:1)

您正以错误的方式来处理这个问题。您需要遍历CSV文件,并对每一行在数据库中进行查询以查找任何匹配的行。

with open('smaller.csv','r') as smallerfile, open('output', 'w') as output:
    reader = csv.reader(smallerfile)
    writer = csv.writer(output)
    for row in reader:
        c.execute("SELECT name, number,zip from table WHERE name=?", row[0])
        for result in c.fetchall():
            writer.writerow(result)