Получить позицию первой из найденых подсток в текстовом поле

Cron

Новичок
Получить позицию первой из найденых подсток в текстовом поле

В таблице есть текстовое поле. В нем ищу через LIKE. Без сортировки.
А хотелось бы, чтобы в зависимости от того, в какой записи любая из подстрок
найдена раньше - та запись выводилась бы выше.

Для примера создал таблицу, в которой есть несколько записей, а в трех из них есть по одному искомому слову.

id | txtfield
1 | ...какой-то текст и слово1 ...
2 | слово2 и какой-то текст...
3 | текст... слово3 и текст...
4 | ... еще что-то ...

Удалось написать запрос, который кое-как находит позицию, если искать только по 1 слову:

SELECT id, POSITION('слово1' IN txtfield) as mysort
FROM `mytable`
WHERE txtfield LIKE '%слово1%' OR txtfield LIKE '%слово2%' OR txtfield LIKE '%слово3%'

А надо по любому количеству искомых (упомянутых в WHERE). Как можно (если можно) решить такую задачу?
 
Сверху