使用Python变量搜索SQLite数据库
我有一个SQLite数据库,我想用Python中的变量来进行搜索,像这样:
cur.execute("SELECT * FROM list WHERE InstitutionName=Variable")
理想情况下,这样可以让我把每一行的结果作为一个列表返回,并放到一个更大的列表里,这个列表包含了用户搜索的所有行。我知道我上面写的只是伪代码。那么我该怎么实际写出来呢?
相关问题:
3 个回答
0
如果你想使用LIKE这个功能
cur.execute("SELECT * FROM list WHERE InstitutionName like '%'||?||'%'", (Variable,))
2
如果你想从数据库中显示多个记录,可以在你的SQL查询中使用(LIKE)这个关键词:
("SELECT * FROM TABLENAME WHERE name LIKE'%?%'",(Variable,))
17
我觉得你想使用参数替换的功能:
cur.execute("SELECT * FROM list WHERE InstitutionName=?", (Variable,))
在这个执行命令的文档和sqlite3文档页面的第四个示例代码框中,有更多的说明。
请注意,你应该明确不要使用%或者format函数,因为这样容易受到注入攻击:
# NEVER DO THIS
cur.execute("SELECT * FROM list WHERE InstitutionName='%s'" % (Variable,))