Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

MySQL REGEXP e palavras repetidas


Normalmente, usaríamos asserções de antecipação positivas para esta tarefa, mas o mecanismo regex do MySQL não os suporta.

Portanto, sua única opção (se você quiser fazer isso em um único regex) é lidar com ambas as variações (hello depois de red ou hello antes de red ) "manualmente":
hello.*red|red.*hello

Para duas "palavras de pesquisa", isso provavelmente é aceitável - no entanto, não é dimensionado bem.

Sua regex ((hello|red).*){2}()* é um pouco estranho; Isso 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...

então isso corresponde a hello foo hello ou red bar red também.