次のようにPython変数を使用して検索したいSQLiteデータベースがあります。
cur.execute("SELECT * FROM list WHERE InstitutionName=Variable")
理想的には、これにより、各行をリストとして、ユーザーが検索しているすべての行を含むより大きなリストに戻すことができます。私が上に持っているのは擬似コードであることに気づきました。どうすれば実際に書くことができますか?
パラメータ置換機能を使用したいと思います。
cur.execute("SELECT * FROM list WHERE InstitutionName=?", (Variable,))
実際の実行コマンドとsqlite3ドキュメントページの4番目のサンプルコードボックスには、さらに多くのドキュメントがあります。
または関数はインジェクション攻撃の影響を受けやすいため、明示的に使用しない%
format
でください。
# NEVER DO THIS
cur.execute("SELECT * FROM list WHERE InstitutionName='%s'" % (Variable,))
データベースから複数のレコードを表示する場合は、SQLクエリで(LIKE)キーワードを使用できます。
("SELECT * FROM TABLENAME WHERE name LIKE'%?%'",(Variable,))
LIKEを使用したい場合
cur.execute("SELECT * FROM list WHERE InstitutionName like '%'||?||'%'", (Variable,))