Django で生の SQL を実行するときに問題が発生します。
res = []
start = '2017-12-08T01:56:56.701Z'
end = '2020-12-08T01:56:56.701Z'
with connection.cursor() as cursor:
raw_sql = '''
select
case
when content like '%products%' then 'Products'
else 'Others'
end as name,
count(id) as times
from mytable
where somefield LIKE "%somefieldcontent%"
and created between '%s' and '%s'
'''
cursor.execute(raw_sql, [start, end])
res = cursor.fetchall()
このエラーが発生します:サポートされていないフォーマット文字 ''' (0x27)
このSQLをmysqlで直接実行しようとしましたが、動作します。ただし、Django 環境では動作しません。私は文字列について何か間違っているに違いないと思います。
基本的に、concat の代わりに params を使用して SQL ステートメントを作成したいと考えています。何か案は?ありがとう!