这篇文章主要为大家展示了“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时的查询方式有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!