我有一个使用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”匹配的查询?
答案 0 :(得分:1)
您可以将ANY
与数组一起使用以进行多次比较。
LIKE ANY(ARRAY['%nikon%ai-s%', 'nikon%50mm%', '%nikkor%50mm%'])