0

我知道

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

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

4

2 回答 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 行,而其他用户则没有),这个技巧就不太有效——但你可以使用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
于 2013-10-09T02:19:57.957 回答
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')
于 2013-10-09T02:32:03.760 回答