mysql json_extract 去掉双引号
时间: 2025-01-30 21:02:04 浏览: 60
### 如何在 MySQL 中使用 `JSON_UNQUOTE` 和 `JSON_EXTRACT`
当从 JSON 数据中提取特定字段时,`JSON_EXTRACT()` 函数返回的结果会带有双引号。为了去除这些不必要的引号,可以结合 `JSON_UNQUOTE()` 函数一起使用。
#### 示例
假设有一个包含 ID 的 JSON 字符串:
```sql
SELECT JSON_UNQUOTE(JSON_EXTRACT('{"ID":"1"}', '$.ID')) AS id_value;
```
这条 SQL 查询语句执行后,将会得到不带双引号的纯数值结果 `1` 而不是 `"1"`[^1]。
对于更复杂的数据结构同样适用。比如存在如下 JSON 文档存储在一个名为 `data_column` 的列里,并且该列为 JSON 类型,则可以通过下面的方式获取并净化其中某个键对应的值:
```sql
SELECT JSON_UNQUOTE(JSON_EXTRACT(data_column, '$.key_name')) FROM table_name;
```
这里的关键在于先利用 `JSON_EXTRACT()` 定位到目标路径下的数据项,再由 `JSON_UNQUOTE()` 来消除可能存在的多余引号[^4]。
需要注意的是,在某些情况下即使没有显式的调用 `JSON_QUOTE()` ,只要涉及到将常规字符串转换成合法 JSON 形式的操作都可能会自动加上引号;因此掌握这两个函数有助于更好地控制最终获得的数据形式[^2]。
此外,由于 MySQL 解析器会在适当的情况下尝试验证传入的内容是否构成有效的 JSON 结构,所以在涉及此类操作之前应当确认所处理的对象确实遵循了正确的格式规范[^3]。
阅读全文
相关推荐


















