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

SQLite JSON_QUOTE()

    SQLiteでは、json_quote() 関数は、数値または文字列を対応するJSON表現に変換します。

    関数を呼び出すときに引数として数値または文字列を指定すると、関数はその値のJSON表現を返します。

    構文

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

    json_quote(X)

    ここでX は数字または文字列です。

    関数に文字列を渡すと、次のようになります。

    SELECT json_quote('Super');

    結果:

    "Super"

    そして、ここにいくつかあります:

    SELECT json_quote(10.45);

    結果:

    10.45

    配列のように見える文字列は次のとおりです。

    SELECT json_quote('[10.45]');

    結果:

    "[10.45]"

    オブジェクトのように見える文字列は次のとおりです:

    SELECT json_quote('{ "score" : 10.45 }');

    結果:

    "{ \"score\" : 10.45 }"

    しかし、json()で引数を渡すと 関数、これを取得します:

    SELECT json_quote(json('{ "score" : 10.45 }'));

    結果:

    {"score":10.45}

    ヌル値

    nullを渡す nullを返します :

    SELECT json_quote( null );

    結果:

    null

    これは実際にはSQLテキスト値nullです 。これをjson_type()に渡すことで確認できます 機能:

    SELECT json_type(json_quote( null ));

    結果:

    null

    json_type() 関数は、引数のSQLテキスト値型を返します。この場合、nullを返しました 、これはjson_quote()を示します 関数がnullを返しました nullを渡したとき それに。

    SQLiteCLIがnullを返していると思われる場合 実際のnull値が返されるため、次のようにして除外することができます。

    .nullvalue N/A

    これは、コマンドラインインターフェイスにN/Aを返すように指示します。 null値が返されるときはいつでも。

    上記のコマンドを実行したら、前のステートメントと、実際にnull値になる操作をもう一度実行してみましょう。

    SELECT 
        json_quote( null ) AS json_quote,
        json_type(json_quote( null )) AS json_type,
        1 / 0 AS actual_null;

    結果:

    +------------+-----------+-------------+
    | json_quote | json_type | actual_null |
    +------------+-----------+-------------+
    | null       | null      | N/A         |
    +------------+-----------+-------------+

    SQLiteでは、数値をゼロで割るとnull値になります(このような場合、他の多くのDBMSはエラーをスローします)。この例では、N/Aを返すようにnull値を設定しました 、したがって、2つの関数の出力と実際のnull値の間に違いがあることがわかります。つまり、上記の出力の唯一のnull値は最後の列にあります。

    そうは言っても、null値はSQLテキスト値nullになる可能性があります json_quote()を呼び出すと返されます 。おそらく、例は私が説明できるよりもこれをよく示しています:

    SELECT 
        json_quote( 1 / 0 ),
        json_type(json_quote( 1 / 0 )),
        json_type( 1 / 0 ),
        1 / 0;

    結果:

    +---------------------+--------------------------------+--------------------+-------+
    | json_quote( 1 / 0 ) | json_type(json_quote( 1 / 0 )) | json_type( 1 / 0 ) | 1 / 0 |
    +---------------------+--------------------------------+--------------------+-------+
    | null                | null                           | N/A                | N/A   |
    +---------------------+--------------------------------+--------------------+-------+

    最初の2列がnullを返すことがわかります SQLテキスト値、および他の2つの列は実際のnull値を返します。

    ブール値の受け渡し

    trueなどのブール値を渡す例を次に示します。 およびfalse

    SELECT 
        json_quote( true ) AS true,
        json_quote( false ) AS false;

    結果:

    +------+-------+
    | true | false |
    +------+-------+
    | 1    | 0     |
    +------+-------+

    無効な引数カウント

    引数を渡さずに関数を呼び出すと、エラーが発生します:

    SELECT json_quote();

    結果:

    Parse error: wrong number of arguments to function json_quote()
      SELECT json_quote();
             ^--- error here

    また、あまりにも多くの引数を渡すと、エラーが発生します:

    SELECT json_quote( 1, 2 );

    結果:

    Parse error: wrong number of arguments to function json_quote()
      SELECT json_quote( 1, 2 );
             ^--- error here

    1. django ORMでクエリを実行しているときにcharを整数にキャストするにはどうすればよいですか?

    2. PHP/MySQLはnull値を挿入します

    3. MariaDBでRADIANS()がどのように機能するか

    4. 単純なパラメータ化と簡単な計画—パート2