Mysql
 sql >> Baza danych >  >> RDS >> Mysql

JSON_LENGTH() – Zwraca długość dokumentu JSON w MySQL

W MySQL funkcja JSON_LENGTH() funkcja zwraca długość dokumentu JSON.

Gdy wywołujesz tę funkcję, podajesz dokument JSON jako argument. Możesz również podać argument ścieżki, aby zwrócić długość wartości w dokumencie.

Składnia

Składnia wygląda tak:

JSON_LENGTH(json_doc[, path])

Gdzie json_doc jest dokumentem JSON, dla którego należy zwrócić głębokość i path jest opcjonalnym argumentem, którego można użyć do zwrócenia długości wartości w dokumencie.

Przykład 1 – Pusty obiekt

Oto dokument JSON, który zawiera tylko pusty obiekt.

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

Wynik:

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

Przykład 2 – Obiekt z danymi

A oto, co się stanie, jeśli dodamy dane.

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

Wynik:

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

Zwraca 1 ponieważ obiekt zawiera jednego członka. Jeśli dodamy drugiego członka, dzieje się tak:

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

Wynik:

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

Przykład 3 – Tablice

Długość tablicy to liczba elementów, które zawiera.

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

Wynik:

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

To prawda, nawet jeśli jeden z elementów zawiera własną tablicę (lub obiekt).

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

Wynik:

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

Przykład 4 – Argument dotyczący ścieżki

Możemy podać opcjonalną path argument zwracający długość podanej ścieżki w dokumencie.

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

Wynik:

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

W takim przypadku zwracamy długość Person obiekt, który zawiera trzech członków.

Jeśli zawęzimy go do tylko jednego z tych członków (powiedzmy, Name członek), otrzymujemy to:

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

Wynik:

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

Ale jeśli zawęzimy to do Hobbies tablica, otrzymujemy to:

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

Wynik:

+--------+
| 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. Korzystanie z automatyzacji w celu przyspieszenia testów wersji w klastrze Galera z ClusterControl

  2. Jak usunąć wszystkie tabele MySQL z wiersza poleceń bez uprawnień do bazy danych DROP?

  3. Nieprawidłowy typ błędu składni =MyISAM w DDL wygenerowany przez Hibernate

  4. Jak sprawdzić, czy przycisk radiowy jest zaznaczony lub zaznaczony w jQuery?

  5. Indeks rozwiązywania dla użytkownika tabeli jest uszkodzony; spróbuj to naprawić