get_json_bigint
description
Syntax
INT get_json_bigint(VARCHAR json_str, VARCHAR json_path)
解析并获取 json 字符串内指定路径的整型(BIGINT)内容。 其中 json_path 必须以 $ 符号作为开头,使用 . 作为路径分割符。如果路径中包含 . ,则可以使用双引号包围。 使用 [ ] 表示数组下标,从 0 开始。 path 的内容不能包含 “, [ 和 ]。 如果 json_string 格式不对,或 json_path 格式不对,或无法找到匹配项,则返回 NULL。
另外,推荐使用jsonb类型和jsonb_extract_XXX函数实现同样的功能。
example
- 获取 key 为 “k1” 的 value
1. mysql> SELECT get_json_bigint('{"k1":1, "k2":"2"}', "$.k1");
2. +-----------------------------------------------+
3. | get_json_bigint('{"k1":1, "k2":"2"}', '$.k1') |
4. +-----------------------------------------------+
5. | 1 |
6. +-----------------------------------------------+
- 获取 key 为 “my.key” 的数组中第二个元素
1. mysql> SELECT get_json_bigint('{"k1":"v1", "my.key":[1, 1678708107000, 3]}', '$."my.key"[1]');
2. +---------------------------------------------------------------------------------+
3. | get_json_bigint('{"k1":"v1", "my.key":[1, 1678708107000, 3]}', '$."my.key"[1]') |
4. +---------------------------------------------------------------------------------+
5. | 1678708107000 |
6. +---------------------------------------------------------------------------------+
- 获取二级路径为 k1.key -> k2 的数组中,第一个元素
1. mysql> SELECT get_json_bigint('{"k1.key":{"k2":[1678708107000, 2]}}', '$."k1.key".k2[0]');
2. +-----------------------------------------------------------------------------+
3. | get_json_bigint('{"k1.key":{"k2":[1678708107000, 2]}}', '$."k1.key".k2[0]') |
4. +-----------------------------------------------------------------------------+
5. | 1678708107000 |
6. +-----------------------------------------------------------------------------+
keywords
GET_JSON_BIGINT,GET,JSON,BIGINT
