Dinamik olarak oluşturulmuş bir ham sorgu yürütmeye çalışıyorum. Parametrelerin geçerli konumlara eklendiğinden emin olmak için adlandırılmış parametreler kullanıyorum.Django: Ham SQL sorgusunda adlandırılmış parametreleri kullanma
Bu Sqlite için sorunsuz çalışıyor gibi görünüyor. (Tüm testler başarılı) Ama mariadb karşı aynı kodu koşuyorum zaman ..
Basit bir örnek sorgu başarısız:
SELECT u.*
FROM users_gigyauser AS u
WHERE u.email like :u_email
GROUP BY u.id
ORDER BY u.last_login DESC
LIMIT 60 OFFSET 0
Parametreler şunlardır:
{'u_email': '%test%'}
hatası Parametre değiştirilmediğinden varsayılan bir sözdizimi hatası alıyorum. Bir gösterge olarak '%' kullanarak çalıştı, ancak bu
%u[_email]
ayrıştırmak çalışırken sql sonuçlandı ve bu tip hata döndürdü.
ben gibi sorgu yürütme ediyorum:
raw_queryset = GigyaUser.objects.raw(self.sql_fetch, self._query_object['params'])
Veya sayarken:
cursor.execute(self.sql_count, self._query_object['params'])
İkisi (':' kullanarak göstergesi) SQLite aynı mariadb hatayı ama iş vermek
Şimdi neyi özlüyorum?
% (u_email) kullanılarak dokümanlar belirtilen (https://docs.djangoproject.com/en/1.8/topics/db/sql /) "tamamlanmayan bir biçim" hatasıyla sonuçlanır. btw –
docs, '% (u_email) s' ('s' sonekini fark et) diyor – yedpodtrzitko
TNX !!!!! Bu yorumu cevap olarak yazarsanız, bu yanıt olarak işaretlenebilir. –