Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wywołanie DATE_FORMAT() w MySQL z Django kończy się niepowodzeniem

Domyślam się, że problem dotyczy znaku procentu (% ) w tekście zapytania. (Czy nie jest to symbol zastępczy zmiennej bind w Django?) Np. gdybyśmy mieli użyć zmiennej bind, czy nie wyglądałoby to mniej więcej tak?

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

Myślę, że może Django skanuje twój tekst SQL i napotyka %w i oczekując, że będzie to zmienna wiązania. Albo to, albo uruchamia sprintf funkcji stylu i napotkanie %w i oczekując zastąpienia tego symbolu zastępczego wartością argumentu.

(Nie testowałem; więc to tylko pomysł, tylko przypuszczenie.)

Jako zgadywanie w obejściu, może podwajasz znaki procentu, tak samo jak otrzymujemy literały % poprzez sprintf:

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

Jeśli to nie zadziała, to może jest to znak odwrotnego ukośnika, tak samo jak zmieniamy znaki w wyrażeniu regularnym:

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

(Lub może być konieczne podwojenie ukośników odwrotnych. To tylko domysły oparte na konwencjach używanych przez inne oprogramowanie.)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wystąpił błąd JNI, sprawdź instalację i spróbuj ponownie w Eclipse x86 Windows 8.1

  2. Parametryzacja klauzuli Mysql IN w PHP, Python

  3. Jak zmienić katalog bazy danych mysql na WAMP

  4. Python:Jak zainstalować mysqldb na Windows 7 x64?

  5. Składnia SQL CREATE DATABASE – wymieniona przez DBMS