如何解决获取数据 PostgreSQL TypeORM多重条件
我需要在几个条件下从我的数据库中获取数据:后端将接收到的两个不同字符串的匹配,但每个字符串都可以在表的一行中的 2 个不同列中找到。
以下是我正在尝试的代码,但它仅标识我需要的匹配项之一,如果找到该位置,则不会过滤该专业。
过滤这两种情况的更好方法是什么?
const result = await LawyersRepo.createqueryBuilder("lawyers")
.where("lawyers.city = :city",{
city: location,})
.orWhere("lawyers.state = :state",{
state: location,})
.andWhere("lawyers.specialties like :specialties",{
specialties: `${specialty}%`,})
.orWhere("lawyers.occupation_area like :specialties",})
.getMany();
解决方法
解释 typeorm 是如何工作的,它将获取匹配所有 where 和 Where 的行 在您的情况下,它将找到任何行匹配(城市和专业),
但问题是它会得到任何匹配 orWhere 的东西,并忽略任何其他条件,所以它会获取任何匹配 state 或occupation_area 的东西,
所以你必须将你的条件划分到 orWhere 的括号中,如下所示: (condition1 AND condition2) OrWhere (condition3 AND condition4)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。