sql >> Base de Datos >  >> RDS >> Mysql

MySQL REGEXP y palabras repetidas

Por lo general, uno usaría afirmaciones anticipadas positivas para esta tarea, pero el motor de expresiones regulares de MySQL no las admite.

Por lo tanto, su única opción (si desea hacer esto en una sola expresión regular) es manejar ambas variaciones (hello después de red o hello antes de red ) "manualmente":

hello.*red|red.*hello

Para dos "palabras de búsqueda", eso probablemente sea aceptable; sin embargo, no se escala bien.

Tu expresión regular ((hello|red).*){2}()* es un poco extraño; significa

(            # Start of group:
 (hello|red) # Match either hello or red
 .*          # Match any number of characters
){2}         # Match this group twice
()*          # Match the empty string any number of times...

entonces esto coincide con hello foo hello o red bar red también.