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

JSON_EXTRACT_INT

Описание​

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

Синтаксис​

JSON_EXTRACT_INT(<json_object>, <json_path>)

Параметры​

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

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

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

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

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

Примеры​

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