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

MariaDB JSON_UNQUOTE()の説明

    MariaDBでは、JSON_UNQUOTE() JSON値から引用符を削除する組み込み関数です。つまり、JSON値を「引用解除」します。

    構文

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

    JSON_UNQUOTE(val)

    実例を示します。

    SELECT JSON_UNQUOTE('"Eggs"');

    結果:

    +------------------------+
    | JSON_UNQUOTE('"Eggs"') |
    +------------------------+
    | Eggs                   |
    +------------------------+

    エスケープ文字

    値に円記号が含まれている場合(\ )、通常は無視されます。ただし、バックスラッシュを含む特定のシーケンスには特別な意味があり、JSON_UNQUOTE()の結果に影響を与える可能性があります。 。

    これは、SQLモードがNO_BACKSLASH_ESCAPESに設定されているかどうかによって異なります。 。 SQLモードがNO_BACKSLASH_ESCAPESに設定されている場合 、これにより、文字列内でバックスラッシュ文字をエスケープ文字として使用できなくなり、通常の文字と同等になります。

    それ以外の場合は、次のシーケンスが当てはまります。

    エスケープシーケンス キャラクター
    \" 二重引用符("
    \b バックスラッシュ
    \f フォームフィード
    \n 改行(改行)
    \r キャリッジリターン
    \t タブ
    \\ バックスラッシュ(\
    \uXXXX UTF-Unicode値の場合は8バイトXXXX

    例:

    SELECT JSON_UNQUOTE('Feeling\tGood');

    結果:

    +-------------------------------+
    | JSON_UNQUOTE('Feeling\tGood') |
    +-------------------------------+
    | Feeling	Good                  |
    +-------------------------------+

    ここでは、\tを使用しました 文字列内にタブ文字を追加するシーケンス。

    SQLモードをNO_BACKSLASH_ESCAPESに設定した場合 、シーケンスには特別な意味はなく、リテラルシーケンスは解釈なしで出力に含まれます:

    SET @@sql_mode = 'NO_BACKSLASH_ESCAPES';
    
    SELECT JSON_UNQUOTE('Feeling\tGood');

    結果:

    +-------------------------------+
    | JSON_UNQUOTE('Feeling\tGood') |
    +-------------------------------+
    | Feeling\tGood                 |
    +-------------------------------+

    ヌル引数

    引数がNULLの場合 、結果はNULLです :

    SELECT JSON_UNQUOTE(null);

    結果:

    +--------------------+
    | JSON_UNQUOTE(null) |
    +--------------------+
    | NULL               |
    +--------------------+

    パラメータカウントが正しくありません

    JSON_UNQUOTE()を呼び出す 引数がないとエラーになります:

    SELECT JSON_UNQUOTE();

    結果:

    ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_UNQUOTE'

    提供する引数が多すぎる場合も同じです:

    SELECT JSON_UNQUOTE('a', 'b');

    結果:

    ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_UNQUOTE'

    1. Oracle(11.2.0.1):UPDATEステートメントによって現在更新されている行を識別する方法

    2. OracleでUnixタイムスタンプを返す方法

    3. オフライン国際化アプリを作成する方法:プロジェクト構造を構築する

    4. SQLiteで外部キー違反を見つける