LOCATE関数

LOCATE関数を使って、文字列の一致する箇所を他の文字列から探し出すことができます。文字列が見つかった場合、LOCATEは見つかった位置を返します。見つからなかった場合、LOCATEは0を返します。

構文

LOCATE(文字式, 文字式 [, 開始位置] ) 
        
LOCATE関数には必須な二つの引数と、任意で指定できる三つ目の引数があります。
  • 最初の文字式で指定された文字列探し出されます。
  • 二つ目の文字式で指定された文字列より、探し出されます。
  • 三つ目の引数は開始位置で、二つ目の引数のどの位置から文字列を探し出すかを指定します。もし三つ目の引数が指定されなければ、LOCATE関数は二つ目の引数の頭から文字列を探し出します。

LOCATEの返り値は整数です。LOCATE関数は二つ目の引数のうちで、一つ目の引数が最初に見つかった位置を表す整数を返します。この位置は1から始まります。 もし二つ目の引数から一つ目の引数が見つからなかった場合、LOCATEは0を返します。もし一つ目の引数が空文字列('')だった場合は二つ目の引数も空文字列であったとしても、LOCATEは三つ目の引数(もし指定されていなければ1)を返します。 いずれかの文字式にNULLが渡された場合はNULLが返ります。

-- 'love'が2の位置で見つかるので2が返る。
            VALUES LOCATE('love', 'clover')
-- 'clover'から'stove'は見つからないので0が返る。
            VALUES LOCATE('stove', 'clover')
-- 5が返る。(開始位置は4)
            VALUES LOCATE('iss', 'Mississippi', 4)
-- 空文字列は特別で1が返る。
            VALUES LOCATE('', 'ABC')
-- ''から'AAA'は見つからないので0が返る。
            VALUES LOCATE('AAA', '')
-- 3が返る。
            VALUES LOCATE('', '', 3)