У меня есть база данных SQLite, которую я бы хотел искать с использованием переменных Python, например:
cur.execute("SELECT * FROM list WHERE InstitutionName=Variable")
В идеале это позволило бы мне вернуть каждую строку в виде списка в более крупный список, содержащий все строки, которые ищет пользователь. Я понимаю, что у меня выше, это псевдокод. Как я мог это написать?
Я думаю, что вы хотите использовать функцию замены параметров:
cur.execute("SELECT * FROM list WHERE InstitutionName=?", (Variable,))
Там больше документации в действительной команде выполнения и в четвертом окне кода кода на странице документов sqlite3.
Обратите внимание, что вы явно не должны использовать функцию %
или format
поскольку это восприимчиво к атакам при инъекциях:
# NEVER DO THIS
cur.execute("SELECT * FROM list WHERE InstitutionName='%s'" % (Variable,))
Если вы хотите отобразить несколько записей из базы данных, вы можете использовать ключевое слово (LIKE) в запросе sql:
("SELECT * FROM TABLENAME WHERE name LIKE'%?%'",(Variable,))
Если вы хотите использовать как
cur.execute("SELECT * FROM list WHERE InstitutionName like '%'||?||'%'", (Variable,))