Перейти к содержимому
Последнее обновление

JSON_EXTRACT_BIGINT

Описание​

JSON_EXTRACT_BIGINT извлекает поле, заданное <json_path>, из объекта JSON и преобразует его в тип BIGINT.

Синтаксис​

JSON_EXTRACT_BIGINT(<json_object>, <json_path>)

Параметры​

  • <json_object>: тип JSON, объект, из которого извлекается значение.
  • <json_path>: тип String, путь JSON к элементу, который нужно извлечь из исходного объекта JSON.

Возвращаемое значение​

Nullable(BIGINT): возвращает извлечённое значение BIGINT; в некоторых случаях возвращает NULL.

Примечания по использованию​

  1. Если <json_object> или <json_path> имеет значение NULL, возвращает NULL.
  2. Если элемент, заданный <json_path>, не существует, возвращает NULL.
  3. Если элемент, заданный <json_path>, невозможно преобразовать в BIGINT, возвращает NULL.
  4. Поведение соответствует "cast + json_extract", что эквивалентно:
    CAST(JSON_EXTRACT(<json_object>, <json_path>) as BIGINT)

Примеры​

  1. Корректные параметры
    SELECT json_extract_bigint('{"id": 122222222222223, "name": "doris"}', '$.id');
    +-------------------------------------------------------------------------+
    | json_extract_bigint('{"id": 122222222222223, "name": "doris"}', '$.id') |
    +-------------------------------------------------------------------------+
    | 122222222222223 |
    +-------------------------------------------------------------------------+
  2. Путь не существует
    SELECT json_extract_bigint('{"id": 122222222222223, "name": "doris"}', '$.id2');
    +--------------------------------------------------------------------------+
    | json_extract_bigint('{"id": 122222222222223, "name": "doris"}', '$.id2') |
    +--------------------------------------------------------------------------+
    | NULL |
    +--------------------------------------------------------------------------+
  3. Параметры со значением NULL
    SELECT json_extract_bigint('{"id": 122222222222223, "name": "doris"}', NULl);
    +-----------------------------------------------------------------------+
    | json_extract_bigint('{"id": 122222222222223, "name": "doris"}', NULl) |
    +-----------------------------------------------------------------------+
    | NULL |
    +-----------------------------------------------------------------------+
    SELECT json_extract_bigint(NULL, '$.id2');
    +------------------------------------+
    | json_extract_bigint(NULL, '$.id2') |
    +------------------------------------+
    | NULL |
    +------------------------------------+
  4. Преобразование в BIGINT невозможно
    SELECT json_extract_bigint('{"id": 123, "name": "doris"}','$.name');
    +--------------------------------------------------------------+
    | json_extract_bigint('{"id": 123, "name": "doris"}','$.name') |
    +--------------------------------------------------------------+
    | NULL |
    +--------------------------------------------------------------+