You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TypeORM SQL查询语法错误:按标题和内容搜索失败求助

SQL查询语法错误修正方案

存在的语法问题

  • SELECT子句末尾多余逗号:select p.*, 中的逗号无意义,需删除,因为没有后续字段需要查询。
  • WHERE子句逻辑错误:原语句AND p.title ilike OR存在两处问题:一是ilike运算符未指定匹配值;二是AND与OR的优先级未处理,导致逻辑完全不符合需求。正确逻辑应为已发布的帖子,且标题或内容匹配搜索关键词,需用括号包裹OR条件,确保逻辑优先级正确。

修正后的SQL查询语句

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 $2 OR p.context::text ilike $2)
limit 5 offset $3

修正后的TypeORM代码

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 $2 OR p.context::text ilike $2)
  limit 5 offset $3
`, [req.user.id, `%${req.query.q}%`, req.query.skip])

内容的提问来源于stack exchange,提问作者Butonix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 05:57:41