У меня есть очень интересная задача, которую я не знаю, как реализовать.
Я должен сохранить много регулярных выражений в таблице базы данных и должен смочь найти, кто из них соответствует данной строке.
Например:
id | regexp
---|-------------
1 | ^hello world$
2 | ^I have [0-9] flowers&
3 | ^some other regexp$
4 | ^and another (one|regexp)$
И я должен найти, какое из тех выражений соответствует строке, "У меня есть 5 цветов". Конечно, я могу ВЫБРАТЬ * таблица FROM и цикл через выражения, соответствующие им один за другим в PHP, но это было бы ужасно, чтобы сервер обработал.
Я могу так или иначе индексировать эту таблицу или использовать специальный SQL-запрос для справлений с этой задачей?
Я буду ценить любой ответ.Спасибо.
SELECT * FROM table WHERE 'some stuff' REGEXP `regexp`;
К сожалению, нет возможности использовать индексы с запросами, использующими регулярные выражения.