簡體   English   中英

[Python] [sqlite3] if語句以查看值是否在數據庫中?

[英][Python][sqlite3] If statement to see if value is in database?

在需要查看名稱是否在數據庫中的項目上。

我想知道是否可以執行類似於以下內容的if語句:

if name in c.execute("SELECT name FROM table"):
    print "Name is in table"
else:
    print "Name not in table"

這可能嗎?
可根據要求提供更多代碼!

我認為您應該在這里使用EXISTS來確定是否存在匹配的記錄:

c.execute("SELECT EXISTS(SELECT 1 FROM table WHERE name=? LIMIT 1)", (name,))
record = c.fetchone()
if record[0] == 1:
    print "Name is in the table"
else:
    print "Name not in table"

這種方法的好處是允許SQLite數據庫進行繁重的工作來確定我們的名稱是否與任何記錄匹配。 在您的方法中,您將發回表中的每個名稱,然后在Python中檢查這些名稱。 這不是最佳選擇,因為這會浪費帶寬,還會浪費Python代碼中的FLOP,而這些本來可以更好地用於其他事情的。

您可以嘗試-

c.execute("SELECT name FROM table")
rows = c.fetchall()

if (name,) in rows:
    print "Name is in table"
else:
    print "Name not in table"

execute您必須獲取結果。 結果是一個元組列表,其中元組元素是列值,而列表元素是不同的行

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM