2013-10-09 60 views
0

已經存在,我知道看看這兩個值在SQLite表

cursor.execute("select * from table where value = ?",(user,)) 

檢查,看看是否有一個名字,但是,有沒有辦法來檢查,如果這兩個值1和值2的表存在了嗎?

回答

1

當然,您可以使用IN運算符或OR運算符。例如:

cursor.execute("select * from table where value in (?, ?)",(user, otheruser)) 

cursor.execute("select * from table where value = ? or value = ?",(user, otheruser)) 

如果返回兩行,則兩者都存在。

如果值不是唯一的(也就是說,可能有20行的用戶,並沒有對otheruser),這一招也並非完全奏效,但你可以解決這個問題很容易用DISTINCT子句或GROUP BY。您也可以使用COUNT(*)而不是返回多行。

所以:

def both_exist(user, otheruser): 
    cursor.execute("SELECT COUNT(*) FROM table WHERE value IN (?, ?) GROUP BY value", 
        (user, otheruser)) 
    count, = cursor.fetchone() 
    return count == 2 
1

您可以使用AND運算

cursor.execute("SELECT * FROM table WHERE table_field1 = ? AND table_field2 = ?", (value1,value2)) 
result=cursor.fetchall() 
if len(result)==0: 
    print('Not found') 
else: 
    print('Found')