Не могу создать SQL запрос
Нужно сделать, чтобы тг бот писал юзеру его статус(который равен 0 или 1). Я не шарю в sql и сам пайтон изучаю 5 день, мне нужно возращать в bot.py из sqlcfg.py переменную status, значение которой будет браться из базы. После бота думаю прочитать учебник по sql, если можете, то посоветуйте какой-нибудь. Код прилагаю:
def check_user_status(self, user_id, status):
with self.connection:
self.cursor.execute("SELECT `status` FROM `userinfo` WHERE `user_id` = ?", (status, )).fetchall()
После этого хз что писать
Ответы (1 шт):
Автор решения: gil9red
→ Ссылка
Чтобы получить из базы значение одной записи используйте fetchone
Так вытаскиваем статус юзера из базы, проверяем что данные в таблице нашлись и после сравниваем status, переданный в функцию, с статусом из базы:
sql = "SELECT `status` FROM `userinfo` WHERE `user_id` = ?"
rs = self.cursor.execute(sql, (user_id, )).fetchone()
user_status = rs[0] if rs else None
return user_status == status
А так проверяем, что есть в базе такой юзер и с таким статусом (если не найдется, то вернет None):
sql = "SELECT 1 FROM `userinfo` WHERE `user_id` = ? and status = ?"
rs = self.cursor.execute(sql, (user_id, status)).fetchone()
return bool(rs)