【MySQL】JSON,MySQL中的函数

2025-06-24 12:25:24 76339

在 MySQL 中,JSON_UNQUOTE().用于去除函数。 JSON 值周围的双引号,并将其转换为普通字符串或数值。这个函数特别适用于从 JSON 从文档中提取的值,因为这些值通常包含在双引号中。基本语法。

JSON_UNQUOTE。

(。json_value。)。json_value。
  • : 要去引号的 JSON 值.示例。

假设有一个表。

users。 ,有一个字段。data。 存储用户 JSON 数据:CREATE。

TABLE。users。(。 id。INT。 PRIMARY。KEY。,data。JSON。)。;INSERT。INTO。users。(。 id。,data。)。VALUES。(。1.,'{ "name": "Alice", "age": 30, "city": "New York"}')。,(。2.,'{ "name": "Bob", "age": 25, "city": "Los Angeles"}')。;示例 1: 去除提取的字符串值的双引号。
SELECT。
id。,JSON_UNQUOTE。(。JSON_EXTRACT。(。data。,'$.name')。)。AS。name。FROM。users。;#xff1输出结果a;

+----+--------+| id | name |+----+--------+| 1 | Alice || 2 | Bob |+----+--------+

示例 2: 去除提取值的双引号。
SELECT。
id。,JSON_UNQUOTE。(。JSON_EXTRACT。(。data。,'$.age')。)。AS。age。FROM。users。;#xff1输出结果a;

+----+-----+| id | age |+----+-----+| 1 | 30 || 2 | 25 |+----+-----+

示例 3: 去除嵌套值的双引号。
假设 JSON 数据包含嵌套对象:

INSERT。

INTO。users。(。 id。,data。)。VALUES。(。3。,'{ "name": "Charlie", "age": 35, "address": { "street": "123 Main St", "city": "Chicago"}}')。;我们可以提取嵌套的街道地址,删除双引号:

SELECT。

id。,JSON_UNQUOTE。(。JSON_EXTRACT。(。data。,'$.address.street')。)。AS。street。FROM。users。;#xff1输出结果a;

+----+-------------+| id | street |+----+-------------+| 1 | NULL || 2 | NULL || 3 | 123 Main St |+----+-------------+

示例 4: 去除数组中值的双引号。
假设 JSON 数据包含一个数组:

INSERT。

INTO。users。(。 id。,data。)。VALUES。(。4。,'{ "name": "David", "age": 40, "hobbies": ["reading", "traveling", "cooking"]}')。;我们可以提取数组中的第一个爱好,并删除双引号:

SELECT。

id。,JSON_UNQUOTE。(。JSON_EXTRACT。(。data。,'$.hobbies[0]')。)。AS。hobby。FROM。users。;#xff1输出结果a;

+----+----------+| id | hobby |+----+----------+| 1 | NULL || 2 | NULL || 3 | NULL || 4 | reading |+----+----------+

注意事项。

JSON_UNQUOTE()。

  • 最外层的双引号只能去除。如果 JSON 值本身包含嵌套双引号,不会去除这些嵌套的双引号。如果。
  • json_value。 不是有效的 JSON 值,JSON_UNQUOTE()。将返回。NULL。 如果。
  • json_value。 本身就是。NULL。 JSON_UNQUOTE()。也将返回。NULL。 组合使用。

JSON_UNQUOTE()。

通常与。JSON_EXTRACT()。 一起使用�以便从 JSON 在文档中提取值并将其转换为普通数据类型。例如:SELECT。

id。,JSON_UNQUOTE。(。JSON_EXTRACT。(。data。,'$.name')。)。AS。name。,JSON_UNQUOTE。(。JSON_EXTRACT。(。data。,'$.age')。)。AS。age。,JSON_UNQUOTE。(。JSON_EXTRACT。(。data。,'$.address.street')。)。AS。street。FROM。users。;#xff1输出结果a;

+----+--------+-----+-------------+| id | name | age | street |+----+--------+-----+-------------+| 1 | Alice | 30 | NULL || 2 | Bob | 25 | NULL || 3 | charlie| 35 | 123 Main St || 4 | David | 40 | NULL |+----+--------+-----+-------------+

        
         
本文地址:http://cdn.baiduyun.im/video/www.bfzx365.com/news/show.php/video/625f46098914.html
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

热门标签

全站热门

雷鸟鹤6 25款85英寸电视热卖,3899元

2024年批量下载知乎回答/文章/想法/专栏/收藏夹,微信官方账号文章内容/图片/封面/视频/音频,微博内容/图片/视频/评论/转发/数据,导出excel和pdf

如何使用浏览器post请求

真实画面和剧情深度:五款流行的写实单机游戏

最新研究揭示了伊朗黄土沉积发育记录的气候和环境进化记录

《LeeetCode热题100》

比亚迪张卓:自主研发的独立压缩机冰箱明年最早上车 6万元的车也会配备

Redis 详细说明了6种回收策略(淘汰策略)

友情链接