sql >> データベース >  >> RDS >> Mysql

JSON_VALID()–MySQLで有効なJSONをテストする

    MySQLを使用する場合は、JSON_VALID()を使用できます。 文字列式に有効なJSONが含まれているかどうかをテストする関数。

    式に有効なJSONが含まれている場合、JSON_VALID() 1を返します 、それ以外の場合は、0を返します 。

    構文

    構文は次のようになります:

    JSON_VALID(val)
    

    valの場所 有効なJSONをテストする値です。

    例1-有効なJSON

    文字列に有効なJSONが含まれている場合に何が起こるかを示す例を次に示します。

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

    結果:

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

    例2–無効なJSON

    文字列がない場合に何が起こるかを示す例を次に示します。 有効なJSONが含まれています。

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

    結果:

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

    例3–データベースの例

    このデータベースクエリでは、結果はCollections.Contentsの場所でのみ返されます 列に有効なJSONが含まれています。

    この特定の列は、jsonのデータ型を使用します JSONドキュメントを保存します。

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

    結果:

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

    isn't 有効なJSON。

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

    結果:

    Empty set (0.00 sec)
    


    1. SQLのインデックスとは何ですか?

    2. セロリワーカーデータベース接続プール

    3. PostgreSQLでステートメントの実行を一時停止する方法

    4. 初心者と中級者のための10のMySQLデータベースインタビューの質問