FIELD 함수는 string1, string2 등의 인자 중 search_string과 동일한 인자의 위치 인덱스 값(포지션)을 반환한다. search_string과 동일한 인자가 없으면 0을 반환한다. search_string이 NULL이면 다른 인자와 비교 연산을 수행할 수 없으므로 0을 반환한다.
FIELD 함수에서 지정된 모든 인자가 스트링 타입이면 스트링 비교 연산을 수행하고, 모두 수치 타입이면 수치 비교 연산을 수행한다. 어느 한 인자의 타입이 나머지와 다른 경우, 모든 인자를 첫 번째 인자의 타입으로 변환하여 비교 연산을 수행한다. 각 인자와의 비교 연산 도중 타입 변환에 실패하면 비교 연산의 결과를 FALSE로 간주하고, 나머지 연산을 계속 진행한다.
FIELD( search_string, string1 [,string2 [, ... [, stringN]...]])
string :
• character string
• NULL
SELECT FIELD('abc', 'a', 'ab', 'abc', 'abcd', 'abcde');
==================================================
3
--it returns 0 when no same string is found in the list
SELECT FIELD('abc', 'a', 'ab', NULL);
================================
0
--it returns 0 when null is specified in the first parameter
SELECT FIELD(NULL, 'a', 'ab', NULL);
===============================
0
SELECT FIELD('123', 1, 12, 123.0, 1234, 12345);
==========================================
0
SELECT FIELD(123, 1, 12, '123.0', 1234, 12345);
==============================================
3