JSON_NORMALIZE
Функция 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'
См. также
© 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/