1

次のようにPython変数を使用して検索したいSQLiteデータベースがあります。

cur.execute("SELECT * FROM list WHERE InstitutionName=Variable")

理想的には、これにより、各行をリストとして、ユーザーが検索しているすべての行を含むより大きなリストに戻すことができます。私が上に持っているのは擬似コードであることに気づきました。どうすれば実際に書くことができますか?

4

3 に答える 3

17

パラメータ置換機能を使用したいと思います。

cur.execute("SELECT * FROM list WHERE InstitutionName=?", (Variable,))

実際の実行コマンドとsqlite3ドキュメントページの4番目のサンプルコードボックスには、さらに多くのドキュメントがあります。

または関数はインジェクション攻撃の影響を受けやすいため、明示的に使用しない%formatでください。

# NEVER DO THIS
cur.execute("SELECT * FROM list WHERE InstitutionName='%s'" % (Variable,))
于 2013-02-19T04:29:30.197 に答える
2

データベースから複数のレコードを表示する場合は、SQLクエリで(LIKE)キーワードを使用できます。

("SELECT * FROM TABLENAME WHERE name LIKE'%?%'",(Variable,))
于 2019-05-20T12:01:00.710 に答える
0

LIKEを使用したい場合

cur.execute("SELECT * FROM list WHERE InstitutionName like '%'||?||'%'", (Variable,))
于 2018-12-15T14:20:10.717 に答える