この質問がされているかどうかを確認しようとしましたが、おそらくそうであると思われますが、答えが見つかりませんでした. pyodbc を使用して Python スクリプトから MS SQL Server にクエリを実行しています。
SQL を照会する関数を定義しています。クエリ文字列には、SQL が解釈するワイルドカードを意味する '%R_%' と、単一引用符の間に Python の変数を配置することを意味する '%s' の両方があります。次のようになります。
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 に正常に渡すにはどうすればよいですか?
よろしくお願いします。