sql >> Database >  >> RDS >> Mysql

JSON_TYPE() - Krijg een JSON-waardetype in MySQL

In MySQL, de JSON_TYPE() functie retourneert het type van een JSON-waarde. Meer specifiek, het retourneert een utf8mb4 tekenreeks die het type van de waarde aangeeft.

U geeft de JSON-waarde op als argument.

Syntaxis

De syntaxis gaat als volgt:

JSON_TYPE(json_val)

Waar json_val is de JSON-waarde waarvoor het type moet worden geretourneerd. Dit kan een object, een array of een scalair type zijn.

Voorbeeld 1 – Object

Hier is een voorbeeld wanneer de waarde een object is.

SET @data = '{"Name": "Homer", "Stupid": true}';
SELECT JSON_TYPE(@data) 'JSON Type';

Resultaat:

+-----------+
| JSON Type |
+-----------+
| OBJECT    |
+-----------+

Voorbeeld 2 – Array

Hier is een matrixvoorbeeld.

SET @data = '[1, 2, 3]';
SELECT JSON_TYPE(@data) 'JSON Type';

Resultaat:

+-----------+
| JSON Type |
+-----------+
| ARRAY     |
+-----------+

Voorbeeld 3 – Gegevens extraheren uit een array

U kunt ook het type van de afzonderlijke elementen in de array krijgen.

SET @data = '[1, 2, 3]';
SELECT 
  JSON_EXTRACT(@data, '$[1]') 'Data',
  JSON_TYPE(JSON_EXTRACT(@data, '$[1]')) 'JSON Type';

Resultaat:

+------+-----------+
| Data | JSON Type |
+------+-----------+
| 2    | INTEGER   |
+------+-----------+

Voorbeeld 4 – Gegevens extraheren uit een object

Hetzelfde geldt voor leden van een object.

SET @data = '{"Name": "Homer", "Stupid": "True"}';
SELECT 
  JSON_EXTRACT(@data, '$.Stupid') 'Data',
  JSON_TYPE(JSON_EXTRACT(@data, '$.Stupid')) 'JSON Type';

Resultaat:

+--------+-----------+
| Data   | JSON Type |
+--------+-----------+
| "True" | STRING    |
+--------+-----------+

In dat geval was de waarde de letterlijke tekenreeks "True" .

Hier is nog een voorbeeld, maar deze keer met de booleaanse waarde true .

SET @data = '{"Name": "Homer", "Stupid": true}';
SELECT 
  JSON_EXTRACT(@data, '$.Stupid') 'Data',
  JSON_TYPE(JSON_EXTRACT(@data, '$.Stupid')) 'JSON Type';

Resultaat:

+------+-----------+
| Data | JSON Type |
+------+-----------+
| true | BOOLEAN   |
+------+-----------+

Voorbeeld 5 – Databasequery

In dit voorbeeld wordt een databasekolom gebruikt.

SELECT 
  Contents,
  JSON_TYPE(Contents) 'Contents',
  JSON_TYPE(JSON_EXTRACT(Contents, '$.Name')) 'Name'
FROM Collections 
WHERE CollectionId = 4;

Resultaat:

+--------------------------------+----------+--------+
| Contents                       | Contents | Name   |
+--------------------------------+----------+--------+
| {"Name": "Homer", "Stupid": 1} | OBJECT   | STRING |
+--------------------------------+----------+--------+

  1. Records of waarden markeren in een Microsoft Access-rapport met behulp van voorwaardelijke opmaak

  2. Is er een manier om Java op Oracle 11g XE te installeren?

  3. JSON_EXTRACT() – Gegevens retourneren uit een JSON-document in MySQL

  4. Laravel:Fout [PDOException]:Kan stuurprogramma niet vinden in PostgreSQL