postgresql - PostgreSql 搜索 JSON 并匹配整个术语
问题描述
我有一个使用 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%'
我怎样才能让这个查询匹配“nikon 50mm”?
解决方案
您可以使用ANY
数组进行多重比较。
LIKE ANY(ARRAY['%nikon%ai-s%', 'nikon%50mm%', '%nikkor%50mm%'])
推荐阅读
- python - 使用 win32api 在内存对象中打印
- keras - keras 中的 preprocess_input 大大增加了火车的大小
- python - OpenCV使用单色相机将帧扔到输出时得到3张图片而不是1张
- java - 通过 Apache.Camel 连接 FTPS 读取超时
- c# - UWP GridView - 如何在调整大小时保持可见项目(列数更改)
- android - 无法解决:de.hdodenhof:circleimageview:2.4.0
- java - 从 Zip 输入流对象中提取单个文件
- apache-kafka - Kubernetes 上的 Kafka - 客户端无法检索元数据
- javascript - 在 React 的返回块中添加函数
- angular - "no-unused-variable": true 在 VSCode 中不起作用