NodeJS 我试图通过标题和内容进行搜索,但在“OR”处或附近出现错误语法错误

eh57zj3b  于 2023-06-05  发布在  Node.js
关注(0)|答案(2)|浏览(452)

我试着按标题和内容进行搜索,但它给出了一个错误

类型

select
p.*,
from post p
left join vote v on p.id = v.post_id and v.user_id = $1
where p.is_published = true AND p.title ilike OR p.context::text ilike $2
limit 5 offset $3
const posts = await AppDataSource.query(`
  select
  p.*,
  from post p
  left join vote v on p.id = v.post_id and v.user_id = $1
  where p.is_published = true AND p.title ilike OR p.context::text ilike $2
  limit 5 offset $3
 `, [req.user.id, `%${req.query.q}%`, req.query.skip]
)
xxe27gdn

xxe27gdn1#

缺少一个匹配的模式:

p.title ilike OR p.context::text ilike $2
             ^ HERE
pieyvz9o

pieyvz9o2#

我不熟悉你正在使用的库,但这可能是因为你没有用引号将它 Package 起来。

const posts = await AppDataSource.query(`
  select
  p.*,
  from post p
  left join vote v on p.id = v.post_id and v.user_id = $1
  where p.is_published = true AND p.title ilike OR p.context::text ilike '$2'
  limit 5 offset $3
 `, [req.user.id, `%${req.query.q}%`, req.query.skip]
)

唯一的变化,我做了它**'$2'**这 Package 在引号中的查询,当翻译成像下面这样的东西

p.content::text ilike '%somesearchquery%'

相关问题