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?
Danke! Dies ist peinlich, ich denke, ich nehme besser einen Urlaub so schnell wie möglich :) – shanyu
wäre peinlicher gewesen, wenn ich falsch geraten hätte ... Ich bin mehr an SQL Server-Syntax gewöhnt. ;) –