mysql json_quote和json_unquote的用法

news/2024/7/8 2:26:03

在 MySQL 中,JSON_QUOTE() 和 JSON_UNQUOTE() 函数与 JSON 数据类型的处理有关。这两个函数在处理 JSON 字符串时特别有用。

JSON_QUOTE()

JSON_QUOTE() 函数用于将字符串值转换为有效的 JSON 字符串。它会将特殊字符(如引号、反斜杠等)进行转义,以确保字符串可以作为 JSON 的一部分使用。

例如:

sql

SELECT JSON_QUOTE('Hello, "World"!');

输出:

json

复制

'"Hello, \\"World\\"!"'

注意输出中的双引号和反斜杠都被转义了。

JSON_UNQUOTE()

JSON_UNQUOTE() 函数用于从 JSON 字符串中移除引号。这在你从 JSON 字段中提取值,但结果仍然被引号包围时特别有用。

例如,假设你有一个 JSON 字段 data,其内容如下:

json

{"name": "John", "age": 30, "message": "\"Hello, World!\""}

如果你使用 JSON_EXTRACT() 从这个字段中提取 message 的值,你会得到带有双引号的字符串。为了去除这些引号,你可以使用 JSON_UNQUOTE()。

sql

SELECT JSON_UNQUOTE(JSON_EXTRACT('{"name": "John", "age": 30, "message": "\\"Hello, World!\\""}', '$.message'));

输出

Hello, World!

注意,在上面的例子中,我使用了两个反斜杠来表示 JSON 字符串中的一个反斜杠,因为反斜杠在 SQL 字符串中也是一个转义字符。

总之,JSON_QUOTE() 和 JSON_UNQUOTE() 函数在处理 MySQL 中的 JSON 字符串时非常有用,可以帮助你确保字符串在 JSON 上下文中的正确性,并轻松地提取和清理 JSON 字段中的值。

 


http://lihuaxi.xjx100.cn/news/2203358.html

相关文章

两句话让LLM逻辑推理瞬间崩溃!!

一道简单的逻辑问题,竟让几乎所有的LLM全军覆没? 对于人类来说,这个名为「爱丽丝梦游仙境」(AIW)的测试并不算很难—— 「爱丽丝有N个兄弟,她还有M个姐妹。爱丽丝的兄弟有多少个姐妹?」 稍加思考…

TypeScript基础教程学习

菜鸟教程 TypeScript基础类型 数字类型 number 双精度 64 位浮点值。它可以用来表示整数和分数。 let binaryLiteral: number 0b1010; // 二进制 let octalLiteral: number 0o744; // 八进制 let decLiteral: number 6; // 十进制 let hexLiteral: number 0xf00d…

【C++】<知识点> C++11新特性

文章目录 一、auto关键字 二、decltype关键字 三、nullptr关键字 四、智能指针 五、 无序容器(哈希表) 六、统一的初始化方法 七、成员变量默认初始值 八、范围for循环 九、右值引用与移动语义 十、lambda表达式 一、auto关键字 1. 作用&#…

ABSD-系统架构师(七)

1、以太网交换机转发表叙述中,正确的是()。 A交换机的初始MAC地址表为空 B交换机接收到数据帧后,如果没有相应的表项,则不转发该帧 C交换机通过读取输入帧中的目的地址来添加相应的MAC地址表项 D交换机的MAC地址表…

C#——枚举类型详情

枚举类型 枚举类型(也可以称为“枚举器”)由一组具有独立标识符(名称)的整数类型常量构成,在 C# 中枚举类型不仅可以在类或结构体的内部声明,也可以在类或结构体的外部声明,默认情况下枚举类型…

[word] word大括号怎么打两行 #其他#其他#微信

word大括号怎么打两行 Word给用户提供了用于创建专业而优雅的文档工具,帮助用户节省时间,并得到优雅美观的结果。 一直以来,Microsoft Office Word 都是最流行的文字处理程序。 作为 Office 套件的核心程序, Word 提供了许多易…

AI 大模型重点行业应用情况

1、AI 大模型重点行业应用情况总览 AI大模型将率先在互联网办公、金融等数字化程度较高的行业快速渗透,医疗、交通、 制造等行业的潜在渗透空间大。 2、AI 大模型在金融行业应用情况 金融行业的应用场景丰富,是最早进行数字化转型的机构,因此…

SpringBoot 配置事务

SpringBoot 在启动时已经加载了事务管理器,所以只需要在需要添加事务的方法/类上添加Transactional即可生效,无需额外配置。 TransactionAutoConfiguration 事务的自动配置类解析: SpringBoot 启动时加载/META-INF/spring/org.springframewor…