@Anatoliy3247932847

Как проверить ячейку бд на наличие конкретных данных Sql?

Как можно проверить есть ли в ячейке True или же False. В зависимости от этого я буду давать клиентам разные сообщения. Вот код:

def Is_True_On_USERID(self, user_id):
        with self.connection:
            return self.cursor.execute(
                "SELECT COUNT(acquainted) as count FROM clientdata WHERE acquainted = ('True') AND user_id = (?)", (user_id,))


А так я вызываю это

@dp.message_handler(state=Survey.concreteness_signals)
async def last_x(message: types.Message, state: FSMContext):
    db.add_concreteness_signals(message.text, message.from_user.id)
    print(bool(db.Is_True_On_USERID(message.from_user.id)))
    if bool(db.Is_True_On_USERID(message.from_user.id)) == True:  # не работает!!! # data_client[str(message.from_user.id)] == "True":
        await bot.send_message(message.from_user.id, "Был отмечен True")
    if bool(db.Is_True_On_USERID(message.from_user.id)) == False:  # data_client[str(message.from_user.id)] == "False":
        await bot.send_message(message.from_user.id, "Был отмечен False")
    await state.finish()


63f1318f5d5e2317393129.png

Ну если в acquainted True - одно даем, если False - другое. В комментариях есть вариация с dict, там все работает корректно, но хотелось бы именно через бд это реализовать help please
  • Вопрос задан
  • 122 просмотра
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Не стоит полагаться на возвращаемое значение cursor.execute().
Выхлоп твоего запроса нужно получать через fetchone()/fetchall(), даже если запрос вернул одно значение.
У тебя тогда в выдаче будет одна строка с одним столбцом. Выбираешь строку через fetchone(), у полученного значения берёшь нулевой столбец.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы