SQL LIKE 运算符在存储的 JSON 中查找单词

Ele*_*Ele 3 sql json sql-like

我将此 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 谢谢

Erw*_*ter 5

虽然未声明,但这看起来像一个 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 数据类型中的字段进行查询?