MySQL | FIELD method
Start your free 7-days trial now!
MySQL's FIELD(~) method returns the position of a string in a list of strings.
Parameters
1. str | string / number
The string to find in the list of provided strings. Can also be a number.
2. str1 | string / number
A list of strings. Can also be numbers, however, there must be consistency in data type with str.
Return value
Case | Return value |
|---|---|
Match is found | Position of first match |
Match is NOT found | 0 |
If | 0 |
Examples
Strings
To find the position of 'shark' in the provided list of strings:
SELECT FIELD('shark', 'Park', 'Shark', 'Dark', 'Pear');
+---------------------------------------------+| FIELD('shark','Park','Shark','Dark','Pear') |+---------------------------------------------+| 2 |+---------------------------------------------+
Note that the match is case insensitive as we find a match with the second item in the list.
The match cannot be a partial match:
SELECT FIELD('ark', 'Park', 'Shark', 'Dark', 'Pear');
+-----------------------------------------------+| FIELD('ark', 'Park', 'Shark', 'Dark', 'Pear') |+-----------------------------------------------+| 0 |+-----------------------------------------------+
Note that 'ark' does not fully match with any of 'Park', 'Shark', 'Dark' or 'Pear' hence the 0 return value.
Numbers
To find the position of 123 in a list of numbers:
SELECT FIELD(123, 456, 789, 123);
+---------------------------+| FIELD(123, 456, 789, 123) |+---------------------------+| 3 |+---------------------------+
Remember that the first item in the list is 456 and not 123.