PostgreSQL搜索JSON并匹配整个术语

时间:2019-03-08 02:22:58

标签: postgresql

我有一个使用JSON存储的Postgres数据库。我有一个具有单个属性的相机和镜头表,可以搜索称为BrandAndModel的属性。相关的JSON部分如下所示,并存储在名为“ data”的列中:

"BrandAndModel": "nikon nikkor 50mm f/1.4 ai-s"

我有一个针对此品牌和型号字符串的LIKE查询,但它只返回字符匹配序列的结果。例如,上面的确获得了“ nikkor 50mm”的结果,而不是“ nikon 50mm”的结果。

我不是SQL专家,我不确定要使用什么来匹配更多可能的组合。

我的查询如下

SELECT * FROM listing where data ->> 'Product' ->> 'BrandAndModel' like '%nikon 50mm%'

如何获取与“尼康50mm”匹配的查询?

1 个答案:

答案 0 :(得分:1)

您可以将ANY与数组一起使用以进行多次比较。

 LIKE ANY(ARRAY['%nikon%ai-s%', 'nikon%50mm%', '%nikkor%50mm%'])