2009-06-06 14 views
0

Die Datenbank ist PostgreSQL. Beim Versuch, eine Abfrage mit Parametern auszuführen, wie dieserWarum erhalte ich einen Fehler, wenn ich versuche, eine Abfrage mit Parametern in postgreSQL auszuführen?

cursor.execute(""" 
    SELECT u.username, up.description, 
     ts_rank_cd(to_tsvector(coalesce(username,'')|| coalesce(description,'')) , to_tsquery('%s')) as rank 

     FROM auth_user u INNER JOIN pm_core_userprofile up on u.id = up.user_id 
     WHERE to_tsvector(coalesce(username,'')|| coalesce(description,'')) @@ to_tsquery('%s') 
     ORDER BY rank DESC; 
    """, ["hello","hello"]) 

Django klagt über einen ProgrammingError, Hinzufügen Syntaxfehler bei oder in der Nähe des Parameter (in diesem Beispiel „Hallo“) . Hier ist der Teil der Django SQL-Anweisung erzeugt wird, dass der Fehler kommt:

to_tsquery('E'hello'') 

Auch wenn ich copy-paste es zu einer postgreSQL Shell, erhalte ich die Syntaxfehler. Wenn ich den E-Teil weglasse, funktioniert es. Was soll ich daraus machen?

Antwort

2

ozgur,

Versuchen

to_tsquery(%s) 

statt

to_tsquery('%s') 
+0

Danke! Dies ist peinlich, ich denke, ich nehme besser einen Urlaub so schnell wie möglich :) – shanyu

+0

wäre peinlicher gewesen, wenn ich falsch geraten hätte ... Ich bin mehr an SQL Server-Syntax gewöhnt. ;) –

0

Ich glaube, Sie sind ein "nach dem E.

+0

Die E Zeug legen es von Django ORM fehlt Ich gebe nur eine Schnur. – shanyu

Verwandte Themen