mysql查询字段类型为json时的查询方式有哪些
这篇文章主要为大家展示了“mysql查询字段类型为json时的查询方式有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“mysql查询字段类型为json时的查询方式有哪些”这篇文章吧。
表结构如下:
idvarchar(32)infojson
数据:
id=1info={"age":"18","disname":"小明"}
--------------------------------------------
现在我需要获取info中disanme的值,查询方法有:
1.
selectt.id,JSON_EXTRACT(t.info,'$.disname')asdisnamefromtableNametwhere1=1
结果:
id = 1, disname=“小明”
以上sql查出的disname值是带有双引号的,有时我们不需要双引号,此时就需要用到下面这种方式。
2.
selectt.id,t.info->>'$.disname'asdisnamefromtableNametwhere1=1
结果:
id=1,disname=小明
ps:下面看下mysql查询json字段
建表语句
CreateTableCREATETABLE`test`(`id`int(10),`user`jsonDEFAULTNULLCOMMENT'用户信息',PRIMARYKEY(`id`))ENGINE=InnoDBAUTO_INCREMENT=6DEFAULTCHARSET=utf8
插入数据
需要注意的是,json数据外面需要单引号来区别
INSERTINTOtest(id,USER)VALUES(1,'{"name":"tom","age":18,"money":3000}');INSERTINTOtest(id,USER)VALUES(2,'{"name":"jack","age":20,"money":100}');INSERTINTOtest(id,USER)VALUES(3,'{"name":"tony","age":21,"money":100}');INSERTINTOtest(id,USER)VALUES(4,'{"name":"danny","age":21,"money":20}');INSERTINTOtest(id,USER)VALUES(5,'{"name":"janny","age":23,"money":20}');
表数据如下
查询语句
SELECTid,JSON_EXTRACT(USER,'$.name')FROMtest;
下面是查询结果
以上是“mysql查询字段类型为json时的查询方式有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。