使用Python变量搜索SQLite数据库

1 投票
3 回答
19969 浏览
提问于 2025-04-17 16:20

我有一个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,))

撰写回答