# 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)

親トピック: 組み込み関数