0

数据库是 PostgreSQL。当我尝试使用参数执行查询时,例如这个

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,在参数处或附近添加语法错误(在本例中为“ hello ”)。这是错误来自的 Django 生成的 SQL 语句的一部分:

to_tsquery('E'hello'')

即使我将它复制粘贴到 postgreSQL shell,我也会收到语法错误。如果我省略“E”部分,它会起作用。我应该怎么做?

4

2 回答 2

2

奥兹古尔,

尝试

to_tsquery(%s)

代替

to_tsquery('%s')
于 2009-06-06T17:48:14.857 回答
0

我相信您在 E 之后缺少一个 '。

于 2009-06-06T17:39:51.763 回答