2009-06-06 8 views
0

dbはPostgreSQLです。私のような、パラメータを使用してクエリを実行しようとすると、この1postgreSQLのパラメータを使用してクエリを実行しようとすると、エラーが発生するのはなぜですか?

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はパラメータまたはその付近 構文エラーを追加し、ProgrammingErrorを訴える

(この例では、「ハロー」) 。ここではDjangoの一部は、エラーがから来ているSQL文を生成します:私は、PostgreSQLのシェルにそれをコピー&ペーストとしても

to_tsquery('E'hello'') 

、私は構文エラーを取得します。私が 'E'部分を省略すると、動作します。私はそれをどうしたらいいですか?

答えて

2

ozgur後、

Eのものは、DjangoのORMによってそこに置かれ

to_tsquery(%s) 

代わりの

to_tsquery('%s') 
+0

ありがとう!これは恥ずかしいです、私はより良い休暇を取ることをお勧めします:) – shanyu

+0

私が間違って推測していたらもっと恥ずかしいだろう...私はSQL Serverの構文に慣れています。 ;) –

0

は、私はあなたが「E.

+0

試し不足していると考えています私は文字列を渡すだけです。 – shanyu

関連する問題