sql >> Database >  >> RDS >> Mysql

JSON_LENGTH() – Retourneert de lengte van een JSON-document in MySQL

In MySQL is de JSON_LENGTH() functie retourneert de lengte van een JSON-document.

Wanneer u deze functie aanroept, geeft u het JSON-document als argument op. U kunt ook een padargument opgeven om de lengte van een waarde in het document te retourneren.

Syntaxis

De syntaxis gaat als volgt:

JSON_LENGTH(json_doc[, path])

Waar json_doc is het JSON-document waarvoor de diepte moet worden geretourneerd, en path is een optioneel argument dat kan worden gebruikt om de lengte van een waarde in het document te retourneren.

Voorbeeld 1 – Leeg object

Hier is een JSON-document dat niets anders bevat dan een leeg object.

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

Resultaat:

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

Voorbeeld 2 – Object met gegevens

En dit is wat er gebeurt als we gegevens toevoegen.

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

Resultaat:

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

Dit retourneert 1 omdat het object één lid bevat. Als we een tweede lid toevoegen, gebeurt het volgende:

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

Resultaat:

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

Voorbeeld 3 – Arrays

De lengte van een array is het aantal elementen dat het bevat.

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

Resultaat:

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

Dit is waar, zelfs als een van de elementen zijn eigen array (of object) bevat.

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

Resultaat:

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

Voorbeeld 4 – Het padargument

We kunnen een optioneel path geven argument om de lengte van een bepaald pad in het document terug te geven.

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

Resultaat:

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

In dit geval retourneren we de lengte van de Person object, dat drie leden bevat.

Als we het beperken tot slechts één van die leden (zeg, de Name lid), krijgen we dit:

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

Resultaat:

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

Maar als we het beperken tot de Hobbies array, krijgen we dit:

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

Resultaat:

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

  1. Een voorloopnul toevoegen aan sommige waarden in de kolom in MySQL

  2. Voeg meerdere rijen in een array samen met SQL op PostgreSQL

  3. MySQL - Fix Error - WordPress Database Error Dubbele invoer voor sleutel PRIMAIR voor query INSERT INTO wp_options

  4. Converteer 'smalldatetime' naar 'datetime2' in SQL Server (T-SQL-voorbeelden)