Returns the first index of the str argument in the str1, str2, … list, or 0 if it doesn’t exist.


FIELD (str, str1, str2, ...)


If all arguments are strings, then all arguments are compared as strings. If all arguments are numbers, they are compared as numbers. Otherwise, the arguments are compared as double.

If str is NULL, the return value is 0 because NULL fails equality comparison with any value.


  • str: any string or binary object

  • str1, str2, … : list of strings or binary objects

Return Type



SELECT FIELD('abra', 'cadabra', 'abra', 'abracadabra');
| FIELD('abra', 'cadabra', 'abra', 'abracadabra') |
|                                               2 |


Implicit Collation

When character_set_server is set to utf8, string literals with characters using 4-byte encoding are implicitly assigned binary collation and processed as a sequence of bytes rather than characters. This implicit conversion to binary collation causes string functions to return unexpected results. To avoid using implicit binary collation, either use explicit type casting or use database columns defined with the utf8mb4 character set.

For more information, refer to Implicit Collation in Special Cases.

Last modified: February 27, 2023

Was this article helpful?