sql >> データベース >  >> RDS >> Mysql

DjangoからMySQLでDATE_FORMAT()を呼び出すと失敗します

    私の推測では、問題はパーセント記号(%)にあります )クエリテキスト内。 (それはDjangoのバインド変数プレースホルダーではありませんか?)例:バインド変数を使用する場合、次のようになりませんか?

    SELECT 'foo' FROM DUAL WHERE 'a' = %(varname)s ;
    

    DjangoがSQLテキストをスキャンしていて、%wに遭遇しているのではないかと思います。 そしてそれがバインド変数であることを期待しています。それか、sprintfを実行しています スタイル関数、および%wに遭遇 そのプレースホルダーを引数値に置き換えることを期待しています。

    (私はテストしていません。したがって、これは単なるアイデアであり、単なる推測です。)

    回避策の推測として、パーセント記号を2倍にすることができます。これは、sprintfを介して%リテラルを取得するのと同じです:

      query("SELECT ... ,'%%w') ...");
    

    それが機能しない場合は、バックスラッシュ文字である可能性があります。これは、正規表現で文字をエスケープするのと同じです。

      query("SELECT ... ,'\%w') ...");
    

    (または、円記号を2倍にする必要がある場合があります。これらは、他のソフトウェアで使用されている規則に基づく推測にすぎません。)



    1. ip2longに変換されたIPをMySQLにどのように保存する必要がありますか?

    2. MySQLクエリで返されたデータのタイプを取得します

    3. PRIMARY KEYでJOINを使用する場合、どのインデックスを使用する必要がありますか

    4. JPA@Versionフィールドはインクリメントされません