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

MariaDBでのCOERCIBILITY()の仕組み

    MariaDBでは、COERCIBILITY() 文字列引数の照合強制値を返すシステム関数です。

    これは、照合の競合が発生した場合に照合がどのように変換されるかを定義します。このような競合では、強制力の高い式は、強制力の低い式の照合に変換されます。

    構文

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

    COERCIBILITY(str)

    str 強制力を得たい表現です。

    COERCIBILITY() 関数は0の間の値を返します および5 、次の表に概説されているように:

    強制力 説明
    0 明示的 COLLATEを使用した値 条項
    1 照合なし さまざまな照合を使用した連結文字列
    2 暗黙的 列の値
    3 一定 USER()などの関数からの戻り値 、VERSION() 、など
    4 強制的 リテラル文字列
    5 無視できる NULL またはNULLから派生

    デモンストレーションの例を次に示します。

    SELECT COERCIBILITY('Green');

    結果:

    +-----------------------+
    | COERCIBILITY('Green') |
    +-----------------------+
    |                     4 |
    +-----------------------+

    これは通常の文字列であるため、強制力は4です。 。

    明示的な照合

    COLLATEを使用して照合を明示的に指定する例を次に示します。 条項:

    SELECT COERCIBILITY('Mango' COLLATE utf8_spanish_ci);

    結果:

    +-----------------------------------------------+
    | COERCIBILITY('Mango' COLLATE utf8_spanish_ci) |
    +-----------------------------------------------+
    |                                             0 |
    +-----------------------------------------------+

    これは0を返します COLLATEで照合を明示的に指定したため 条項。

    データベース列

    この例では、データベース列からデータを返します。:

    SELECT 
        PetName,
        COERCIBILITY(PetName)
    FROM Pets
    LIMIT 1;

    結果:

    +---------+-----------------------+
    | PetName | COERCIBILITY(PetName) |
    +---------+-----------------------+
    | Fluffy  |                     2 |
    +---------+-----------------------+

    これがデータベース列であるという事実は、それが暗黙の照合であることを意味します。したがって、2の強制力が得られます。 。

    定数

    この例では、組み込みのVERSION()から戻り値の強制力を取得します。 機能:

    SELECT COERCIBILITY(VERSION());

    結果:

    +-------------------------+
    | COERCIBILITY(VERSION()) |
    +-------------------------+
    |                       3 |
    +-------------------------+

    ヌル値

    nullを渡すと次のようになります :

    SELECT COERCIBILITY(null);

    結果:

    +--------------------+
    | COERCIBILITY(null) |
    +--------------------+
    |                  6 |
    +--------------------+

    ヌル値は無視できるため、6の強制力が得られます 。

    引数なし

    COERCIBILITY()を呼び出す 引数がないとエラーが発生します:

    SELECT COERCIBILITY();

    結果:

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

    1. SQLの最初の2つの特殊文字の間の文字を取得します

    2. OracleのRAW(16)から.NETのGUIDに変換する

    3. データベースを削除できません

    4. PostgreSQLで先行ゼロを追加する2つの方法