LOCATE関数 LOCATE function

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)