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

JSON_VALID() – Test for gyldig JSON i MySQL

Når du bruger MySQL, kan du bruge JSON_VALID() funktion til at teste, om et strengudtryk indeholder gyldig JSON.

Hvis udtrykket indeholder gyldig JSON, JSON_VALID() returnerer 1 , ellers returnerer den 0 .

Syntaks

Syntaksen ser sådan ud:

JSON_VALID(val)

Hvor val er den værdi, som du tester for gyldig JSON.

Eksempel 1 – Gyldig JSON

Her er et eksempel for at demonstrere, hvad der sker, når strengen indeholder gyldig JSON.

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

Resultat:

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

Eksempel 2 – Ugyldig JSON

Her er et eksempel for at demonstrere, hvad der sker, når strengen ikke indeholder gyldig JSON.

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

Resultat:

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

Eksempel 3 – Et databaseeksempel

I denne databaseforespørgsel returneres resultaterne kun, hvor Collections.Contents kolonne indeholder gyldig JSON.

Denne særlige kolonne bruger datatypen json for at gemme JSON-dokumentet.

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

Resultat:

+------------+
| 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"
            }
        ]
    }
]            |
+------------+

Her er, hvad der sker, hvis vi ændrer erklæringen til kun at returnere dataene, hvis de isn't gyldig JSON.

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

Resultat:

Empty set (0.00 sec)


  1. MS-Access Class Module og VBA

  2. Opgradering af netkontrol efter manuel DB-opgradering

  3. Er SQLFiddle brudt? Fejl for Oracle, SQL Server, ...?

  4. Hvordan man ikke viser dubletter i SQL