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 を返す(以降も同様)
ここで重要なのは、インデックスが第2引数(N1)から開始され、その位置が0として数えられるという点です。つまり、Nより大きい値が引数リストの中で何番目に現れるかを、0始まりのインデックスで取得できるのです。
使用例
mysql> Select INTERVAL(50,20,32,38,40,50,55); +--------------------------------+ | INTERVAL(50,20,32,38,40,50,55) | +--------------------------------+ | 5 | +--------------------------------+ 1 row in set (0.00 sec)
上記のクエリでは、結果として「5」が返されています。これは、引数の中で50より大きい値が「55」だけであり、その55のインデックス位置が5だからです。具体的には、各引数には20が0、32が1、38が2、40が3、50が4、55が5というようにインデックスが割り当てられており、50より大きいのは55のみのため、その位置である5が出力されます。
-
MySQLのTRIM()関数とは?文字列から接頭辞・接尾辞を削除する方法を解説
MySQLのTRIM()関数は、文字列から特定の接頭辞(プレフィックス)や接尾辞(サフィックス)、あるいはその両方を取り除くために使用される関数です。不要な記号や余分な文字を文字列の先頭・末尾から除去したい場合に非常に便利です。TRIM()関数の動作は、以下の構文を見るとよく理解できます。構文TRIM([{BOTH | LEADING | TRAILING} [str_to_remove] FROM] string)各引数の意味は次のとおりです。BOTH:文字列の左側(先頭)と右側(末尾)の両方から指定した文字列を削除します。LEADING:先頭(左側)に付いている文字列のみを削除します。TR
-
MySQLでCHAR()関数の逆の処理を行う方法|ASCII()とORD()の違いを解説
MySQLにおいて、CHAR()関数の逆の働きをするのは ASCII() 関数と ORD() 関数です。CHAR() は数値(文字コード)を文字に変換する関数ですが、ASCII() は引数の文字列の左端の文字に対応する数値(ASCIIコード)を返し、ORD() は左端の文字の文字コードを返します。 ASCII()とORD()の違い どちらも文字から数値への変換を行う点は共通していますが、以下のような違いがあります。 ASCII():シングルバイト文字専用。マルチバイト文字を渡すと警告が出て64を返します。 ORD():マルチバイト文字にも対応しており、最初のバイトの値に基づいて計算された文字