宣言
FIELD(str,str1,str2,str3,...)
説明
パラメータ str が str1, str2, str3,... のリスト内でのインデックス位置(1から始まる)を返します。str が見つからない場合、戻り値は0です。
FIELD() のすべてのパラメータが文字列の場合、すべてのパラメータは文字列として比較されます。すべてのパラメータが数値の場合、数値として比較されます。それ以外の場合、パラメータはすべてDOUBLE型として比較されます。
str が NULL の場合、戻り値は0です。これは NULL がどの値とも等価に比較できないためです。FIELD() は ELT() の補数です。
例
obclient> SELECT FIELD('abc','abc1','abc2','abc','abc4','abc'), FIELD(NULL, 'null1', NULL);
+-----------------------------------------------+----------------------------+
| FIELD('abc','abc1','abc2','abc','abc4','abc') | FIELD(NULL, 'null1', NULL) |
+-----------------------------------------------+----------------------------+
| 3 | 0 |
+-----------------------------------------------+----------------------------+
1 row in set