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

dictionary_get

Запрашивает значение, сопоставленное с ключом в объекте словаря.

Синтаксис

dictionary_get('dictionary_object_name', key_expression_list, [NULL_IF_NOT_EXIST])

key_expression_list ::=
key_expression [, ...]

key_expression ::=
column_name | const_value

Параметры

  • dictionary_name: Имя объекта словаря.
  • key_expression_list: Список выражений для всех ключевых столбцов. Может быть списком имен столбцов или списком значений.
  • NULL_IF_NOT_EXIST (Необязательно): Определяет, возвращать ли null, если ключ не существует в кэше словаря. Допустимые значения:
    • true: Возвращается null, если ключ не существует.
    • false (По умолчанию): Выбрасывается исключение, если ключ не существует.

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

Возвращает значения столбцов значений в виде типа STRUCT. Поэтому вы можете использовать [N] или .<column_name> для указания значения конкретного столбца. N представляет позицию столбца, начиная с 1.

Примеры

В следующих примерах используется набор данных из примеров dict_mapping.

  • Пример 1: Запрос значений столбца значений, сопоставленных с ключевым столбцом order_uuid в объекте словаря dict_obj.

    MySQL > SELECT dictionary_get('dict_obj', order_uuid) FROM dict;
    +--------------------+
    | DICTIONARY_GET |
    +--------------------+
    | {"order_id_int":1} |
    | {"order_id_int":3} |
    | {"order_id_int":2} |
    +--------------------+
    3 rows in set (0.02 sec)
  • Пример 2: Запрос значения столбца значений, сопоставленного с ключом a1 в объекте словаря dict_obj.

    MySQL > SELECT dictionary_get("dict_obj", "a1");
    +--------------------+
    | DICTIONARY_GET |
    +--------------------+
    | {"order_id_int":1} |
    +--------------------+
    1 row in set (0.01 sec)
  • Пример 3: Запрос значений столбцов значений, сопоставленных с ключом 1 в объекте словаря dimension_obj.

    MySQL > SELECT dictionary_get("dimension_obj", 1);
    +-----------------------------------------------------------------------------------------------------------------+
    | DICTIONARY_GET |
    +-----------------------------------------------------------------------------------------------------------------+
    | {"ProductName":"T-Shirt","Category":"Apparel","SubCategory":"Shirts","Brand":"BrandA","Color":"Red","Size":"M"} |
    +-----------------------------------------------------------------------------------------------------------------+
    1 row in set (0.01 sec)
  • Пример 4: Запрос значения первого столбца значений, сопоставленного с ключом 1 в объекте словаря dimension_obj.

    MySQL > SELECT dictionary_get("dimension_obj", 1)[1];
    +-------------------+
    | DICTIONARY_GET[1] |
    +-------------------+
    | T-Shirt |
    +-------------------+
    1 row in set (0.01 sec)
  • Пример 5: Запрос значения второго столбца значений, сопоставленного с ключом 1 в объекте словаря dimension_obj.

    MySQL > SELECT dictionary_get("dimension_obj", 1)[2];
    +-------------------+
    | DICTIONARY_GET[2] |
    +-------------------+
    | Apparel |
    +-------------------+
    1 row in set (0.01 sec)
  • Пример 6: Запрос значения столбца значений ProductName, сопоставленного с ключом 1 в объекте словаря dimension_obj.

    MySQL > SELECT dictionary_get("dimension_obj", 1).ProductName;
    +----------------------------+
    | DICTIONARY_GET.ProductName |
    +----------------------------+
    | T-Shirt |
    +----------------------------+
    1 row in set (0.01 sec)