Spec-Zone.ru › MariaDB

JSON_NORMALIZE

MariaDB, начиная с 10.7.0

Функция JSON_NORMALIZE была добавлена в MariaDB 10.7.0.

Синтаксис

JSON_NORMALIZE(json)

Описание

Рекурсивно сортирует ключи и удаляет пробелы, позволяя сравнивать JSON-документы на равенство.

Примеры

Мы можем захотеть, чтобы наше приложение использовало базу данных для обеспечения уникальности содержимого JSON, и мы можем сделать это, используя функцию JSON_NORMALIZE в сочетании с уникальным ключом.

Например, если у нас есть таблица с JSON-столбцом:

CREATE TABLE t1 (
 id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
 val JSON,
 /* other columns here */
 PRIMARY KEY (id)
);

Добавьте уникальное ограничение, используя JSON_NORMALIZE так:

ALTER TABLE t1
   ADD COLUMN jnorm JSON AS (JSON_NORMALIZE(val)) VIRTUAL,
   ADD UNIQUE KEY (jnorm);

Мы можем протестировать это, сначала вставив строку в обычном режиме:

INSERT INTO t1 (val) VALUES ('{"name":"alice","color":"blue"}');

А затем посмотреть, что произойдет с другой строкой, которая даст тот же JSON-объект:

INSERT INTO t1 (val) VALUES ('{ "color": "blue", "name": "alice" }');
ERROR 1062 (23000): Duplicate entry '{"color":"blue","name":"alice"}' for key 'jnorm'

См. также

  • JSON_EQUALS
Содержимое, воспроизведённое на этом сайте, является собственностью соответствующих владельцев, и это содержимое не проверяется заранее компанией MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают позиции MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/json_normalize/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API