所以我有这些数据
table name: items
slug name metadata
blue round [
{
"value": "sweet",
"type": "block",
}
]
我想做这样的事
where: [{
[Op.or]: [
{ slug: { [Op.iLike]: `%${value}%` } },
{ name: { [Op.iLike]: `%${value}%` } },
{ 'metadata.value': { [Op.iLike]: `%${value}%`}},
],
}]
它执行("items"."metadata"#>>'{value}') ILIKE '%sweet%')
没有错误,但没有结果
先谢谢你
发布于 2022-06-22 06:38:31
在原始SQL中使用文字和like regex来解决这个问题。
literal(`"items"."metadata" @@ '$.* like_regex "${value}" flag "i"' `),
所以我的查询如下
where: [{
[Op.or]: [
{ slug: { [Op.iLike]: `%${value}%` } },
{ name: { [Op.iLike]: `%${value}%` } },
literal(`"items"."metadata" @@ '$.* like_regex "${value}" flag "i"' `),
],
}]
https://stackoverflow.com/questions/72691427
复制相似问题