[英][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.