mysql中json对象,查询包含某个属性的数据
时间: 2024-05-07 21:20:11 浏览: 88
mysql json格式数据查询操作
5星 · 资源好评率100%
在 MySQL 中,可以使用 JSON_CONTAINS 或 JSON_EXTRACT 函数来查询包含某个属性的 JSON 对象数据。
JSON_CONTAINS 函数用于判断 JSON 对象是否包含一个指定的键/值对。其语法如下:
```
JSON_CONTAINS(json_obj, val[, path])
```
其中,json_obj 是要查询的 JSON 对象,val 是要查找的值,path 是可选参数,用于指定查找的 JSON 对象路径。如果找到指定的键/值对,则返回 1,否则返回 0。
例如,假设有一个名为 `users` 的表,其中的 `data` 列包含 JSON 对象数据,我们可以使用以下 SQL 语句查询包含 `name` 属性的数据:
```
SELECT * FROM users WHERE JSON_CONTAINS(data, '"name"', '$.keys');
```
这里的 `$` 表示根路径,`$.keys` 表示根路径下的 `keys` 属性,`"name"` 是要查找的值。
JSON_EXTRACT 函数用于从 JSON 对象中提取指定的值。其语法如下:
```
JSON_EXTRACT(json_obj, path)
```
其中,json_obj 是要查询的 JSON 对象,path 是要提取的 JSON 对象路径。
例如,我们可以使用以下 SQL 语句查询包含 `name` 属性的数据:
```
SELECT * FROM users WHERE JSON_EXTRACT(data, '$.name') IS NOT NULL;
```
这里的 `$` 表示根路径,`.name` 表示根路径下的 `name` 属性。如果该属性存在,则返回非 NULL 值。
阅读全文