欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySql中的json_extract函數(shù)處理json字段詳情

 更新時(shí)間:2022年06月02日 16:14:58   作者:??一灰灰????  
這篇文章主要介紹了MySql中的json_extract函數(shù)處理json字段詳情,利用json_extract函數(shù)可以通過key查詢value值的一個(gè)介紹展開相關(guān)內(nèi)容,需要的小伙伴可以參考一下

前言

在db中存儲(chǔ)json格式的數(shù)據(jù),相信大家都或多或少的使用過,那么在查詢這個(gè)json結(jié)構(gòu)中的數(shù)據(jù)時(shí),有什么好的方法么?取出String之后再代碼中進(jìn)行解析?

接下來本文將介紹一下Mysql5.7+之后提供的json_extract函數(shù),可以通過key查詢value值

1. 使用方式

數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)是json字符串,類型為我們常用的varchar即可

語法:

JSON_EXTRACT(json_doc, path[, path] …)

若json字符串非數(shù)組時(shí),可以通過$.字段名來表示查詢對(duì)應(yīng)的value

2. 使用演示

創(chuàng)建一個(gè)測試的表:

CREATE TABLE `json_table` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主鍵id',
  `val` json DEFAULT NULL COMMENT 'json字符串',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

插入幾條數(shù)據(jù):

insert into `json_table` values (1, '{"name": "一灰灰blog", "age": 18}');
insert into `json_table` values (2, '{"name": "一灰灰blog", "site": "https://blog.hhui.top"}');

查詢json串中的name,如下:

mysql> select json_extract(`val`, '$.name') from `json_table`;
+-------------------------------+
| json_extract(`val`, '$.name') |
+-------------------------------+
| "一灰灰blog"                  |
| "一灰灰blog"                  |
+-------------------------------+

如果查詢的key不在json串中,返回的是null,而不是拋異常

mysql> select json_extract(`val`, '$.name') as `name`, json_extract(`val`, '$.site') as `site` from `json_table`;
+-----------------+-------------------------+
| name            | site                    |
+-----------------+-------------------------+
| "一灰灰blog"    | NULL                    |
| "一灰灰blog"    | "https://blog.hhui.top" |
+-----------------+-------------------------+

接下來再看一下如果為json數(shù)組,怎么整

mysql> insert into `json_table` values (3, '[{"name": "一灰灰", "site": "https://spring.hhui.top"}]');
mysql> select json_extract(`val`, '$[0].name') from `json_table` where id = 3;
+----------------------------------+
| json_extract(`val`, '$[0].name') |
+----------------------------------+
| "一灰灰"                         |
+----------------------------------+

除了在查詢結(jié)果中使用json_extract之外,也可以在查詢條件中使用它

mysql> select * from `json_table` where json_extract(`val`, '$.name') = '一灰灰blog';
+----+------------------------------------------------------------+
| id | val                                                        |
+----+------------------------------------------------------------+
|  1 | {"age": 18, "name": "一灰灰blog"}                          |
|  2 | {"name": "一灰灰blog", "site": "https://blog.hhui.top"}    |
+----+------------------------------------------------------------+

3. 小結(jié)

json_extract函數(shù)的使用方法,用于解析字段內(nèi)value為json串的場景

到此這篇關(guān)于MySql中的json_extract函數(shù)處理json字段詳情的文章就介紹到這了,更多相關(guān)MySql 處理json 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論