2013-10-09 2 views

ответ

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

Вы можете использовать оператор И

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') 
Смежные вопросы