无法使用pyodbc使用参数执行类似查询

Unable to perform like query with parameter using pyodbc

我正在尝试将一个变量作为参数传递到访问查询中,这样我就可以在我的网站上生成相似名称的列表。我正在使用 pyodbc 访问我的烧瓶应用程序的 .mdb 数据库。我尝试以多种方式传递变量,例如...

xyz = "SomeName"
cursor.execute('SELECT * FROM Employees WHERE EmployeeName LIKE %?%', xyz)

没用所以我试了...

xyz = "SomeName"
cursor.execute('SELECT * FROM Employees WHERE EmployeeName LIKE ?', "%xyz%")

这个很简单。该变量不再是双引号中的变量,因此它以字符串形式运行 'xyz'。但是当我将它作为字符串传递时查询有效...

cursor.execute('SELECT * FROM Employees WHERE EmployeeName LIKE ?', "%SomeName%")

如何传递用户输入变量以使该查询有效?提前致谢。

您可以使用 & 连接 ms-access 中的字符串:

xyz = "SomeName"
cursor.execute('SELECT * FROM Employees WHERE EmployeeName LIKE "%" & ? & "%"', xyz)

或者,您可以连接 Python 中的字符串变量:

xyz = "SomeName"
cursor.execute('SELECT * FROM Employees WHERE EmployeeName LIKE ?', '%' + xyz + '%')