Функция FIELD ищет поле, которое содержит в себе заданный текст, и возвращает его номер (нумерация с единицы).

Текст передается первым параметром, а поля, в которых искать - остальными параметрами. Вместо полей могут быть строки или числа.

Если строка не найдена, возвращается 0.

См. также функцию ELT, которое выбирает поле по его номеру.

См. также функцию FIELD, которое выбирает поле по его содержимому.

См. также функцию GREATEST, которая находит максимальное из значений.

См. также функцию LEAST, которая находит минимальное из значений.

Синтаксис

SELECT FIELD(строка, поле1, поле2...) FROM имя_таблицы WHERE условие

Примеры

Все примеры будут по этой таблице texts, если не сказано иное:

id
айди
field1
поле1
field2
поле2
field3
поле3
1 строка1 строка2 строка3
2 строка3 строка2 строка1
3 строка2 строка1 строка3

Пример

В данном примере с помощью FIELD ищется номер поля со значением 'строка1':

SELECT *, FIELD('строка1', field1, field2, field3) as number FROM texts

SQL запрос выберет следующие строки:

id
айди
field1
поле1
field2
поле2
field3
поле3
number
номер поля
1 строка1 строка2 строка3 1
2 строка3 строка2 строка1 3
3 строка2 строка1 строка3 2