Я знаюувидеть, если оба значения уже существует в SQLite таблице
cursor.execute("select * from table where value = ?",(user,))
проверяет, есть ли имя, но есть способ, чтобы проверить, как значение 1 и значение 2 существует в таблице уже?
Я знаюувидеть, если оба значения уже существует в SQLite таблице
cursor.execute("select * from table where value = ?",(user,))
проверяет, есть ли имя, но есть способ, чтобы проверить, как значение 1 и значение 2 существует в таблице уже?
Уверенный, вы можете использовать оператора 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
Вы можете использовать оператор И
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')