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

JSON_LENGTH() – Връща дължината на JSON документ в MySQL

В MySQL, JSON_LENGTH() функцията връща дължината на JSON документ.

Когато извикате тази функция, вие предоставяте документа JSON като аргумент. Можете също да предоставите аргумент за път, за да върнете дължината на стойност в документа.

Синтаксис

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

JSON_LENGTH(json_doc[, path])

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

Пример 1 – Празен обект

Ето JSON документ, който не съдържа нищо освен празен обект.

SELECT JSON_LENGTH('{}') 'Result';

Резултат:

+--------+
| Result |
+--------+
|      0 |
+--------+

Пример 2 – Обект с данни

И ето какво се случва, ако добавим данни.

SELECT JSON_LENGTH('{"Name": "Homer"}') 'Result';

Резултат:

+--------+
| Result |
+--------+
|      1 |
+--------+

Това връща 1 тъй като обектът съдържа един член. Ако добавим втори член, ето какво се случва:

SELECT JSON_LENGTH('{"Name": "Homer", "Stupid": true}') 'Result';

Резултат:

+--------+
| Result |
+--------+
|      2 |
+--------+

Пример 3 – Масиви

Дължината на масива е броят на елементите, които съдържа.

SELECT JSON_LENGTH('[1, 2, 3]') 'Result';

Резултат:

+--------+
| Result |
+--------+
|      3 |
+--------+

Това е вярно, дори ако един от елементите съдържа свой собствен масив (или обект).

SELECT JSON_LENGTH('[1, 2, [3, 4]]') 'Result';

Резултат:

+--------+
| Result |
+--------+
|      3 |
+--------+

Пример 4 – Аргумент за пътя

Можем да предоставим незадължителен path аргумент за връщане на дължината на даден път в документа.

SET @data = '{  
    "Person": {    
       "Name": "Homer", 
       "Age": 39,
       "Hobbies": ["Eating", "Sleeping"]  
    }
 }';
SELECT JSON_LENGTH(@data, '$.Person') 'Result';

Резултат:

+--------+
| Result |
+--------+
|      3 |
+--------+

В този случай връщаме дължината на Person обект, който съдържа три члена.

Ако го ограничим само до един от тези членове (да речем, Name член), получаваме това:

SET @data = '{  
    "Person": {    
       "Name": "Homer", 
       "Age": 39,
       "Hobbies": ["Eating", "Sleeping"]  
    }
 }';
SELECT JSON_LENGTH(@data, '$.Person.Name') 'Result';

Резултат:

+--------+
| Result |
+--------+
|      1 |
+--------+

Но ако го ограничим до Hobbies масив, получаваме това:

SET @data = '{  
    "Person": {    
       "Name": "Homer", 
       "Age": 39,
       "Hobbies": ["Eating", "Sleeping"]  
    }
 }';
SELECT JSON_LENGTH(@data, '$.Person.Hobbies') 'Result';

Резултат:

+--------+
| Result |
+--------+
|      2 |
+--------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL CREATE TABLE Синтаксис – Изброени от СУБД

  2. Как да инсталирате MySQL на CentOS 6

  3. Базата данни не се актуализира автоматично с MySQL и Python

  4. Производителност на MySQL:Как да използваме индексирането на базата данни на MySQL

  5. грешка по време на изпълнение:java.lang.ClassNotFoundException:com.mysql.jdbc.Driver