mysql查询json里的值
时间: 2023-07-23 07:07:49 浏览: 114
在 MySQL 5.7.8 以及更高版本中,MySQL 开始支持 JSON 数据类型,并且提供了一些函数用于操作 JSON 数据。如果你需要查询 JSON 字段中的值,可以使用 `JSON_EXTRACT()` 函数。具体使用方法如下:
假设有一个表 `person`,其中有一个字段 `info` 存储了一些 JSON 数据,如下所示:
| id | name | info |
|----|------|-------------------------------------------------------------|
| 1 | Tom | {"age": 18, "gender": "male", "address": {"city": "Beijing"}} |
| 2 | Lucy | {"age": 20, "gender": "female", "address": {"city": "Shanghai"}}|
如果你要查询每个人的城市,可以使用以下 SQL 语句:
```
SELECT id, name, JSON_EXTRACT(info, '$.address.city') AS city FROM person;
```
执行结果如下:
| id | name | city |
|----|------|----------|
| 1 | Tom | Beijing |
| 2 | Lucy | Shanghai |
其中 `JSON_EXTRACT(info, '$.address.city')` 表示从 `info` 字段中提取出 `address` 字段下的 `city` 值。`$` 表示 JSON 字符串的根节点。在本例中,`$.address.city` 表示 `address` 字段下的 `city` 值。
除了 `JSON_EXTRACT()` 函数,MySQL 还提供了其他一些函数用于操作 JSON 数据,例如 `JSON_SET()`、`JSON_REPLACE()`、`JSON_REMOVE()` 等。你可以根据自己的需要选择合适的函数。
阅读全文