MySQLのCHAR_LENGTH()関数に空文字列を指定すると何が返される?
この場合、CHAR_LENGTH()関数の引数として空文字列を渡していることを意味します。空文字列には1つも文字が含まれていないため、CHAR_LENGTH()関数がカウントできる文字は存在せず、その結果として0が返されます。
実行例
実際に空文字列を引数としてCHAR_LENGTH()関数を実行すると、以下のように0が返されます。
mysql> Select CHAR_LENGTH('');
+-----------------+
| CHAR_LENGTH('') |
+-----------------+
| 0 |
+-----------------+
1 row in set (0.00 sec)ポイントまとめ
- 空文字列('')は「長さ0の文字列」として扱われるため、戻り値は0になります。
- NULLを渡した場合とは挙動が異なり、NULLの場合はNULLが返されます。
- マルチバイト文字(日本語など)も1文字として正しくカウントされるのがCHAR_LENGTH()の特徴です。
-
MySQLのINTERVAL()関数で第1引数にNULLを指定した場合の戻り値とは?
INTERVAL()関数の第1引数がNULLだった場合の戻り値MySQLのINTERVAL()関数は、第1引数と残りの引数リストを比較し、第1引数の値がどこまで続く範囲に該当するかを示すインデックスを返す関数です。そして重要なポイントとして、第1引数にNULLを指定した場合、戻り値は必ず-1になります。実際の動作を以下の例で確認してみましょう。mysql> Select INTERVAL(NULL,20,32,38,40,50,55);+--------------------------------------+| INTERVAL(NULL,20,32,38,40,50,55)
-
MySQLのINTERVAL()関数とは?構文と戻り値の仕組みを実例付きで解説
MySQLのINTERVAL()関数は、第1引数とそれ以降の複数の引数を比較し、「第1引数より大きい値」が最初に現れる位置(インデックス)を返す関数です。複数の閾値と一度に大小比較を行いたい場合などに活用できます。 INTERVAL()関数の構文 INTERVAL(N, N1, N2, N3, …) この関数は、第1引数であるNを、残りの引数であるN1、N2、N3…と順番に比較していきます。すべての引数は整数として扱われ、比較結果に応じて以下のような値を返します。 N < N1 の場合 → 0 を返す N < N2 の場合 → 1 を返す N < N3 の場合 → 2