我知道
cursor.execute("select * from table where value = ?",(user,))
检查是否有名称,但有没有办法检查表中是否存在值1和值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')