Поскольку вы используете обычное Python форматирование строки, ваш запрос такой:
SELECT user_id FROM users WHERE username = user1
Обратите внимание на отсутствие кавычек. where username = user1
- это когда столбец username равен столбцу user1.
Вам необходимо заключить в кавычки ваши значения.
SELECT user_id FROM users WHERE username = 'user1'
Но не обрабатывать SQL как строки . Из документов Python sqlite3 ...
Обычно для операций SQL необходимо использовать значения из Python переменных. Вы не должны собирать ваш запрос, используя строковые операции Python, потому что это небезопасно; это делает вашу программу уязвимой для SQL инъекционной атаки (см. https://xkcd.com/327/ для юмористического примера того, что может go не так).
Вместо этого используйте параметры связывания . Они обрабатывают запрос больше как передачу параметров в функцию.
sql.cur.execute("SELECT user_id FROM users WHERE username = ?", 'user1')