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'