Функция 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 |