可以使用参数化查询来解决该问题。示例如下:
import pyodbc
conn = pyodbc.connect('Driver={SQL Server};'
'Server=server_name;'
'Database=database_name;'
'Trusted_Connection=yes;')
cursor = conn.cursor()
operator = '<'
value = 50
sql = "SELECT * FROM table_name WHERE column_name " + operator + " ?"
params = (value,)
cursor.execute(sql, params)
for row in cursor:
print(row)
在该示例中,我们通过参数 operator
和值 value
来动态构建 SQL 查询语句,并使用 ?
占位符来代替值。然后,我们将查询参数 params
传递给 execute()
方法,以免被 SQL 注入攻击。
这样,我们就可以在 SQL 查询中使用包含运算符 <
, <>
和 >=
的动态条件了。