我将此 JSON 存储在 DB 中:列名:json
- '{"brand":"1","year":"2008","model":"2","price":"2001212","category":"Category Example"}'
- '{"brand":"1","year":"2008","model":"2","price":"2001212","category":"Category Example2"}'
Run Code Online (Sandbox Code Playgroud)
我想使用 Like 运算符进行搜索以查找带有“类别”字样的所有类别:
此时我是这样做的,但只返回一个完整的短语:
select * from table where json like '%"category":"Category Example"%';
Run Code Online (Sandbox Code Playgroud)
如何构建一个返回所有带有“类别词”的类别的查询?
更新:
我正在使用 MySQL 谢谢
虽然未声明,但这看起来像一个 Postgres 问题。
当前版本 9.2 中几乎没有任何 JSON 处理工具。但是一整套工具将随即将推出的目前处于 beta 的Postgres 9.3 一起提供。
我将您的问题解释为:
查找 json 列包含一个或多个名为 'category' 的字段的所有行,其中包含一个包含字符串 'Category' 的值。
多一颗?不确定 Postgres 是否强制执行唯一性,我手头没有 9.3 安装。
使用 Postgres 9.3,您的查询可能如下所示:
选择 * 从表 WHERE json ->> 'category' LIKE '%Category%'
->> ..“以文本形式获取 JSON 对象字段”
使用ILIKE了不区分大小写。
此相关答案中的更多内容:
如何使用新 PostgreSQL JSON 数据类型中的字段进行查询?
| 归档时间: |
|
| 查看次数: |
10262 次 |
| 最近记录: |