gpt4 book ai didi

postgresql - TypeORM PostgreSQL 选择 JSON 字段等于某个值的位置

转载 作者:行者123 更新时间:2023-11-29 11:31:31 27 4
gpt4 key购买 nike

目标:编写一个选择查询,返回州等于“florida”的所有行。

实体列:

  @Column({ type: 'json'})
public address: Address;

示例列值:

{"city": "miami", "state": "florida"}

示例查询(不起作用):

getManager().getRepository(User)
.createQueryBuilder('user')
.select()
.where('user.address.state =:state', {state: "florida"})

typeorm 目前支持这个功能吗?如果是这样,我需要如何修改我的 where 子句以返回正确的行?

最佳答案

另一种可能的解决方案(不能用这个注入(inject)原始 SQL):

.where('user.address ::jsonb @> :address', {
address: {
state: query.location
}
})

有了这个,TypeORM 将生成一个以

结尾的 SQL 查询
WHERE user.address ::jsonb @> $1

然后将给出查询,例如

{ state: 'florida' }

作为查询参数来替换查询中的正确值 ($1)。

来源:主要是原题+答案(谢谢!)+自己测试+https://www.postgresql.org/docs/9.4/functions-json.html

关于postgresql - TypeORM PostgreSQL 选择 JSON 字段等于某个值的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52808304/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com