看看sqlite表中是否已存在这两个值

时间:2013-10-09 02:11:53

标签: python sql sqlite

我知道

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

检查是否有名称,但有没有办法检查表中是否存在值1和值2?

2 个答案:

答案 0 :(得分: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行而对于其他用户可能没有),这个技巧不太有效 - 但您可以使用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 :(得分: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')