0

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 ステートメントを作成したいと考えています。何か案は?ありがとう!

4

1 に答える 1