Почему две одинаковые переменные не проходят проверку на равенство?

Делаю телеграм бот. Две переменные msg и answer в этом примере равны, но условие равности не работает.

Подскажите, в чем проблема?

И параллельно, как можно изменять id в SQL запросе. Например, сделать чтобы выпадал вопрос с рандомным id каждый раз. Если просто подставляю переменную из цикла рандомного вместо цифры, не работает.

def check_answer(message):
    conn = sqlite3.connect("mydatabase.db")
    cursor = conn.cursor()
    cursor.execute("SELECT answer FROM questions WHERE id=3")
    answer = cursor.fetchone()
    msg = message.text
    if msg == answer:
        bot.send_message(message.chat.id, "Правильный ответ! Идем дальше?")
    elif msg != answer:
        bot.send_message(message.chat.id, "Неправильно")

Ответы (1 шт):

Автор решения: MaxU

cursor.fetchone() всегда возвращает кортеж (tuple) - даже в том случае если в запросе вы выбираете только один столбец.

Поэтому попробуйте так:

row = cursor.fetchone()
answer = row[0] if row else None
...

Чтобы проверить тип переменной:

print(type(answer))
→ Ссылка