Python-SQL字符串转义通配符

2024-10-01 11:20:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着看看这个问题是否被问过,可能有人问过,但我找不到答案。我使用pyodbc从python脚本查询mssqlserver。在

我定义了一个查询SQL的函数。查询字符串既有一个''%R\%',它是用来解释SQL的通配符,也有一个''%s',它在python中用单引号括起一个变量。看起来像这样:

def numcust(matter):
    QryString = """
    select count(distinct user_id)
    from dbo.tbl_case_details
    where request like '%r_%'
    and project_id in
        (
        select distinct project_id
        from dbo.tbl_projects
        where matter_number = '%s'
        );
    """ % matter
    cursor.execute(QryString)
    row = cursor.fetchone()
    return row[0]

如何转义r廑的通配符,以便成功地将其传递给SQL?在

谢谢你。在


Tags: 答案fromprojectidsqlwhereselectcursor
2条回答

将要转义它们的%加倍(即'%%r_%%')。 另外,在cursor.execute函数中插入字符串,如下所示:

cursor.execute(QryString, matter)

"%% %s"%("Hello",)两个%符号在应用%s后应该变成一个。。。在

但实际上你应该使用内置的查询工具

QryString = """
select count(distinct user_id)
from dbo.tbl_case_details
where request like '%r_%'
and project_id in
    (
    select distinct project_id
    from dbo.tbl_projects
    where matter_number = '%s'
    );
"""
cursor.execute(QryString,matter) 

尽管您可能仍然需要对文本%执行%%

相关问题 更多 >