美文网首页js css html
怎么通过SQL取出数据库中JSON字段中的值

怎么通过SQL取出数据库中JSON字段中的值

作者: 王月亮17 | 来源:发表于2022-08-25 10:08 被阅读0次

我们的数据库中经常会遇到很多JSON的字段,自己写的也好,别人写的也好。一般我们取这个值的话,会创建一个typeHandler来取值。那么如果我们想直接取到JSON里的值该怎么办呢?其实很简单,SQL自带的函数就可以解决。
假如现在有一个字段叫detial,字段内容如下:

{"name":"Bruce","age":24,"gender":"男"}

那么我们取出name的话,写法如下:

select JSON_EXTRACT(detail, '$.name') from ...;

这样就可以直接取到JSON中的值了。
但这样取值有一个问题,就是取出来如果是字符串,字符串的两边会带有双引号。那么去掉双引号也很简单。写法如下:

select JSON_UNQUOTE(JSON_EXTRACT(detail, '$.name')) from ...;
# 感谢【qq_40756282】同学的贡献

即可取出我们要的名字。
如果是嵌套JSON的话,只需要加“.”即可,比如有一个字段detail,内容如下:

{"name":"Bruce","age":24,"gender":"男","favorite":{"read":"《时间简史》","sport":"双截棍"}}

要取出最喜欢的运动的话,像下面这样写就可以了:

select JSON_UNQUOTE(JSON_EXTRACT(detail, '$.favorite.sport')) from ...;

相关文章

  • 怎么通过SQL取出数据库中JSON字段中的值

    我们的数据库中经常会遇到很多JSON的字段,自己写的也好,别人写的也好。一般我们取这个值的话,会创建一个typeH...

  • Mysql更新替换某个字段的值中的某个子值

    当需要把数据库表中某个字段的值中某一部分内容替换为一个新的值时候,可以通过下面的sql语句实现 执行前apartm...

  • 数据存储

    1. 如果后期需要增加数据库中的字段怎么实现,如果不使用CoreData? 编写SQL语句来操作原来表中的字段1>...

  • iOS 面试题锦集(四)——数据存储

    1. 如果后期需要增加数据库中的字段怎么实现,如果不使用CoreData呢? 编写SQL语句来操作原来表中的字段:...

  • 数据存储

    1.如果后期需要增加数据库中的字段怎么实现,如果不适用CoreData呢? 编写SQL语句来操作原来表中的字段 增...

  • python中的Nonetype如何处理

    当python处理数据库中返回的字段值时,数据库中的字段值为"NULL",这个"NULL"返回给python程序怎...

  • 04-数据存储

    1.如果后期需要增加数据库中的字段怎么实现,如果不使用CoreData呢? 编写SQL语句来操作原来表中的字段 1...

  • MySQL的join关键字详解

    SQL Join联接子句用于在两个或更多在数据库中的表的记录组合。JOIN是通过使用从两个表字段共通的值组合连接起...

  • Odoo10开发教程五(计算字段和默认值)

    计算字段和默认值 到目前为止,我们接触的字段都是存储在数据库中并直接从数据库检索。字段也可以通过计算获得。在这种情...

  • SQL学习记录1

    --文本字段 vs. 数值字段SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。在上个实例中 'CN...

网友评论

    本文标题:怎么通过SQL取出数据库中JSON字段中的值

    本文链接:https://www.haomeiwen.com/subject/oohvbrtx.html