MariaDB
 sql >> база данни >  >> RDS >> MariaDB

MariaDB JSON_COMPACT() Обяснено

В MariaDB, JSON_COMPACT() е вградена функция, която премахва всички ненужни интервали от JSON документ, така че да е възможно най-кратък и компактен, и връща резултата.

Това може да бъде удобно, когато трябва да съхранявате JSON данни в колона на база данни и не искате JSON документите да заемат повече място, отколкото е необходимо.

За обратния ефект (т.е. за преобразяване на JSON документ чрез добавяне на отстъпи и разпространението му върху няколко реда), използвайте JSON_DETAILED() функция.

Синтаксис

Синтаксисът е така:

JSON_COMPACT(json_doc)

Където json_doc е JSON документът.

Пример

Ето пример за демонстрация.

SET @json_document = '{"a": [0, 1], "b": [2, 3]}';

SELECT 
    JSON_COMPACT(@json_document) AS Compact,
    @json_document AS Original;

Резултат:

+-----------------------+----------------------------+
| Compact               | Original                   |
+-----------------------+----------------------------+
| {"a":[0,1],"b":[2,3]} | {"a": [0, 1], "b": [2, 3]} |
+-----------------------+----------------------------+

В този случай първата колона съдържа уплътнената версия, а втората колона съдържа оригиналния JSON документ, преди да бъде уплътнен.

По-голям JSON документ

Ето пример с малко по-голям, претъпкан JSON документ.

SET @json_document = '{ 
        "_id" : 1, 
        "name" : "Wag", 
        "details" : {
            "type" : "Dog", 
            "weight" : 20,
            "awards" : { 
                "Florida Dog Awards" : "Top Dog", 
                "New York Marathon" : "Fastest Dog", 
                "Sumo 2020" : "Biggest Dog"
            }
        }
    }';
SELECT JSON_COMPACT(@json_document);

Резултат:

{"_id":1,"name":"Wag","details":{"type":"Dog","weight":20,"awards":{"Florida Dog Awards":"Top Dog","New York Marathon":"Fastest Dog","Sumo 2020":"Biggest Dog"}}}

Нулеви аргументи

Ако аргументът е NULL , резултатът е NULL :

SELECT JSON_COMPACT(null);

Резултат:

+--------------------+
| JSON_COMPACT(null) |
+--------------------+
| NULL               |
+--------------------+

Неправилен брой параметри

Предоставянето на без аргументи води до грешка:

SELECT JSON_COMPACT();

Резултат:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_COMPACT'

Получаваме същия резултат, ако предоставим твърде много аргументи:

SELECT JSON_COMPACT('{ "a": 1}', '{ "b": 1 }');

Резултат:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_COMPACT'

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да преодолеем случайното изтриване на данни в MySQL и MariaDB

  2. Разгръщане на високодостъпни бази данни и клъстери с ClusterControl

  3. Сравняване на облачните предложения на Galera Cluster:Трета част Microsoft Azure

  4. Как QUARTER() работи в MariaDB

  5. Ръководство за MySQL индекси