Tengo una tarea muy interesante, que no sé cómo implementar.Almacenamiento de expresiones regulares en la tabla de la base de datos MySQL y mecanizado en su contra
Necesito almacenar muchas expresiones regulares en una tabla de base de datos, y necesito poder encontrar cuál de ellas coincide con la cadena dada.
Por ejemplo:
id | regexp
---|-------------
1 | ^hello world$
2 | ^I have [0-9] flowers&
3 | ^some other regexp$
4 | ^and another (one|regexp)$
Y tengo que encontrar cuál de esas expresiones coincide cadena "tengo 5 flores". Por supuesto que puedo SELECCIONAR * FROM tabla y recorrer las expresiones que coinciden uno por uno en PHP, pero esto sería horrible para el servidor.
¿Puedo indexar de alguna manera esta tabla o utilizar una consulta SQL especial para manejar esta tarea?
Agradeceré cualquier respuesta. Gracias.
Gracias, utilicé RLIKE antes, pero no pensé en cambiar argumentos :) –
¿Qué tipo de índice debo usar para que se ajuste mejor a esta situación? Simplemente indexe la columna de expresiones regulares? –
Aprendes algo nuevo todos los días :) –