sql >> Database teknologi >  >> RDS >> Mysql

JSON_TYPE() – Få en JSON-værditype i MySQL

I MySQL er JSON_TYPE() funktion returnerer typen af ​​en JSON-værdi. Mere specifikt returnerer den en utf8mb4 streng, der angiver værdiens type.

Du angiver JSON-værdien som et argument.

Syntaks

Syntaksen ser sådan ud:

JSON_TYPE(json_val)

Hvor json_val er den JSON-værdi, som typen skal returneres for. Dette kan være et objekt, en matrix eller en skalartype.

Eksempel 1 – Objekt

Her er et eksempel, når værdien er et objekt.

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

Resultat:

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

Eksempel 2 – Array

Her er et array-eksempel.

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

Resultat:

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

Eksempel 3 – Udtræk data fra et array

Du kan også få typen af ​​de enkelte elementer i arrayet.

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

Resultat:

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

Eksempel 4 – Udtræk data fra et objekt

Det samme gælder for medlemmer af et objekt.

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

Resultat:

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

I så fald var værdien den bogstavelige streng "True" .

Her er et andet eksempel, men denne gang ved at bruge den boolske værdi true .

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

Resultat:

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

Eksempel 5 – Databaseforespørgsel

Dette eksempel bruger en databasekolonne.

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

Resultat:

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

  1. Analyse af I/O-ydeevne for SQL Server

  2. CHECK-begrænsningen i MySQL virker ikke

  3. Perl DBI - kør SQL Script med flere sætninger

  4. Importer CSV-fil til SQL Server