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

JSON_VALID() – Verifica la presenza di JSON valido in MySQL

Quando usi MySQL, puoi usare JSON_VALID() funzione per verificare se un'espressione stringa contiene o meno un JSON valido.

Se l'espressione contiene JSON valido, JSON_VALID() restituisce 1 , altrimenti restituisce 0 .

Sintassi

La sintassi è questa:

JSON_VALID(val)

Dove val è il valore per il quale stai testando un JSON valido.

Esempio 1:JSON valido

Ecco un esempio per dimostrare cosa succede quando la stringa contiene un codice JSON valido.

SELECT JSON_VALID('{"Name": "Bart"}') AS Result;

Risultato:

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

Esempio 2:JSON non valido

Ecco un esempio per dimostrare cosa succede quando la stringa non contengono JSON valido.

SELECT JSON_VALID('Name: Bart') AS Result;

Risultato:

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

Esempio 3:un esempio di database

In questa query del database, i risultati vengono restituiti solo dove Collections.Contents la colonna contiene JSON valido.

Questa particolare colonna utilizza un tipo di dati di json per memorizzare il documento JSON.

SELECT Contents
FROM Collections
WHERE JSON_VALID(Contents) = 1;

Risultato:

+------------+
| Contents   |
|------------|
| [
    {
        "ArtistName": "AC/DC",
        "Albums": [
            {
                "AlbumName": "Powerage"
            }
        ]
    },
    {
        "ArtistName": "Devin Townsend",
        "Albums": [
            {
                "AlbumName": "Ziltoid the Omniscient"
            },
            {
                "AlbumName": "Casualties of Cool"
            },
            {
                "AlbumName": "Epicloud"
            }
        ]
    },
    {
        "ArtistName": "Iron Maiden",
        "Albums": [
            {
                "AlbumName": "Powerslave"
            },
            {
                "AlbumName": "Somewhere in Time"
            },
            {
                "AlbumName": "Piece of Mind"
            },
            {
                "AlbumName": "Killers"
            },
            {
                "AlbumName": "No Prayer for the Dying"
            }
        ]
    }
]            |
+------------+

Ecco cosa succede se cambiamo l'istruzione per restituire i dati solo se isn't JSON valido.

SELECT Contents
FROM Collections
WHERE JSON_VALID(Contents) = 0;

Risultato:

Empty set (0.00 sec)