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

SQLite JSON_TYPE()

    SQLite json_type() 関数は、指定されたJSONの最も外側の要素のタイプを返します。

    関数を呼び出すときに、引数としてJSONを提供します。

    オプションでパスを渡すことができます。これにより、JSON内の特定の配列要素またはオブジェクトメンバーのタイプを取得できます。

    構文

    この関数は次のように使用できます。

    json_type(X)
    json_type(X,P)

    ここでX JSONを表し、P タイプを取得するためのパスを表すオプションの引数です。

    この関数は、次のSQLテキスト値のいずれかを返します:nulltruefalseintegerrealtextarray 、またはobject

    これがどのように機能するかを示す例です:

    SELECT json_type('{ "name" : "Fluffy", "age" : 10 }');

    結果:

    object

    ここでは、JSONのみを提供しました–パスは提供しませんでした。この場合、最も外側のJSONはオブジェクトです。

    配列は次のとおりです:

    SELECT json_type('[ 1, 2, 3 ]');

    結果:

    array

    次のようなこともできます:

    SELECT json_type(10.45);

    結果:

    real

    この場合、私の引数は実際にはJSONオブジェクトまたは配列ではなく、json_type() とにかくそのタイプを返すことができました。

    パスを指定

    パスを指定すると、次のようになります。

    SELECT json_type('{ "name" : "Fluffy", "age" : 10 }', '$.age');

    結果:

    integer

    この場合、$.ageのパスを指定しました 、その結果、ageのタイプになりました メンバーが返されます。

    nameのタイプを取得しましょう メンバー:

    SELECT json_type('{ "name" : "Fluffy", "age" : 10 }', '$.name');

    結果:

    text

    アレイでやってみましょう:

    SELECT json_type('[ "Wag", 2, 1.5, null, true, false ]', '$[0]');

    結果:

    text

    これで最初の要素のタイプがわかりました(SQLite配列はゼロベースなので、0 最初の要素用です。

    配列内のすべての要素のタイプを取得しましょう:

    SELECT 
        json_type('[ "Wag", 2, 1.5, null, true, false  ]', '$[0]') AS "0",
        json_type('[ "Wag", 2, 1.5, null, true, false  ]', '$[1]') AS "1",
        json_type('[ "Wag", 2, 1.5, null, true, false  ]', '$[2]') AS "2",
        json_type('[ "Wag", 2, 1.5, null, true, false  ]', '$[3]') AS "3",
        json_type('[ "Wag", 2, 1.5, null, true, false  ]', '$[4]') AS "4",
        json_type('[ "Wag", 2, 1.5, null, true, false  ]', '$[5]') AS "5";

    結果:

    +------+---------+------+------+------+-------+
    |  0   |    1    |  2   |  3   |  4   |   5   |
    +------+---------+------+------+------+-------+
    | text | integer | real | null | true | false |
    +------+---------+------+------+------+-------+

    1. 真新しい生産データベース

    2. MariaDBで列の照合を取得する3つの方法

    3. PHPとmysqlを使用して無制限のレベルのメニューを作成する方法

    4. 列の名前をSQLServer2008に変更します