mysql json unquote_MySQL常用Json函数

标签:NameDescription

Append data to JSON document

Create JSON array

Append data to JSON document

Insert into JSON array

Return value from JSON column after evaluating path; equivalent to JSON_EXTRACT().

Whether JSON document contains specific object at path

Whether JSON document contains any data at path

Maximum depth of JSON document

Return data from JSON document

Return value from JSON column after evaluating path and unquoting the result; equivalent to JSON_UNQUOTE(JSON_EXTRACT()).

Insert data into JSON document

Array of keys from JSON document

Number of elements in JSON document

Merge JSON documents

Create JSON object

Quote JSON document

Remove data from JSON document

Replace values in JSON document

Path to value within JSON document

Insert data into JSON document

Type of JSON value

Unquote JSON value

Whether JSON value is valid

1. 概述

MySQL里的json分为json array和json object。 $表示整个json对象,在索引数据时用下标(对于json array,从0开始)或键值(对于json object,含有特殊字符的key要用"括起来,比如$."my name")。

例如:[3, {"a": [5, 6], "b": 10}, [99, 100]],那么:

$[0]:3

$[1]: {"a": [5, 6], "b": 10}

$[2] :[99, 100]

$[3] : NULL

$[1].a:[5, 6]

$[1].a[1]:6

$[1].b:10

$[2][0]:99

二、比较规则

json中的数据可以用 =, , >=, <>, !=, and <=> 进行比较。但json里的数据类型可以是多样的,那么在不同类型之间进行比较时,就有优先级了,高优先级的要大于低优先级的(可以用JSON_TYPE()函数查看类型)。优先级从高到低如下:

BLOB

BIT

OPAQUE

DATETIME

TIME

DATE

BOOLEAN

ARRAY

OBJECT

STRING

INTEGER, DOUBLE

NULL

三、常用函数

3.1 创建函数

3.1.1 JSON_ARRAY

JSON_ARRAY(val1,val2,val3...)

生成一个包含指定元素的json数组。

mysql> SELECT JSON_ARRAY(1, "abc", NULL, TRUE, CURTIME());

+---------------------------------------------+

| JSON_ARRAY(1, "abc", NULL, TRUE, CURTIME()) |

+---------------------------------------------+

| [1, "abc", null, true, "11:30:24.000000"] |

+---------------------------------------------+

3.1.2 JSON_OBJECT

JSON_OBJECT(key1,val1,key2,val2...)

生成一个包含指定K-V对的json object。如果有key为NULL或参数个数为奇数,则抛错。

mysql> SELECT JSON_OBJECT(‘id‘, 87, ‘name‘, ‘carrot‘);

+-----------------------------------------+

| JSON_OBJECT(‘id‘, 87, ‘name‘, ‘carrot‘) |

+-----------------------------------------+

| {"id": 87, "name": "carrot"} |

+-----------------------------------------+

3.1.3 JSON_QUOTE

JSON_QUOTE(json_val)

将json_val用"号括起来。

mysql> SELECT JSON_QUOTE(‘null‘), JSON_QUOTE(‘"null"‘);

+--------------------+----------------------+

| JSON_QUOTE(‘null‘) | JSON_QUOTE(‘"null"‘) |

+--------------------+----------------------+

| "null" | "\"null\"" |

+--------------------+----------------------+

mysql> SELECT JSON_QUOTE(‘[1, 2, 3]‘);

+-------------------------+

| JSON_QUOTE(‘[1, 2, 3]‘) |

+-------------------------+

| "[1, 2, 3]" |

+-------------------------+

3.1.4 CONVERT

CONVERT(json_string,JSON)

mysql> select CONVERT(‘{"mail": "amy@gmail.com", "name": "Amy"}‘,JSON);

+----------------------------------------------------------+

| CONVERT(‘{"mail": "amy@gmail.com", "name": "Amy"}‘,JSON) |

+----------------------------------------------------------+

| {"mail": "amy@gmail.com", "name": "Amy"} |

+----------------------------------------------------------+

end

标签:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值