MySQLにはFIELD()
が含まれています 関数とFIND_IN_SET()
両方がリスト内の文字列の位置を返す関数。ただし、これらの機能は互いに少し異なります。
これら2つの機能の主な違いは次のとおりです。
-
FIND_IN_SET()
文字列リスト内の文字列のインデックス位置を返します。 -
FIELD()
引数のリスト内の文字列のインデックス位置を返します。
したがって、1つの関数が文字列リストを検索します 、および他の関数は引数のリストを検索します 。
構文
まず、2つの関数の構文を見てみましょう。
FIELD()
FIELD()
の構文 関数は次のようになります:
FIELD(str,str1,str2,str3,...)
これは、最初の引数とそれに続く複数の後続の引数で構成されます。後続の引数は検索されるものですが、それらの多くはあります。
FIND_IN_SET()
FIND_IN_SET()
の構文 関数は次のようになります:
FIND_IN_SET(str,strlist)
これは、最初の引数とそれに続くもう1つの引数で構成されます。 2番目の引数には、検索する文字列のリストが含まれています。
例
FIELD()
これがFIELD()
の例です 動作中の機能:
SELECT FIELD('horse', 'Cat','Dog','Horse') AS 'Result';
結果:
+--------+ | Result | +--------+ | 3 | +--------+
FIND_IN_SET()
FIND_IN_SET()
の方法は次のとおりです。 同じ結果が得られるように関数が作成されます:
SELECT FIND_IN_SET('horse', 'Cat,Dog,Horse') AS 'Result';
結果:
+--------+ | Result | +--------+ | 3 | +--------+