Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL REGEXP e parole ripetute

Di solito, si usano asserzioni lookahead positive per questa attività, ma il motore regex di MySQL non li supporta.

Pertanto, la tua unica opzione (se vuoi farlo in un'unica espressione regolare) è quella di gestire entrambe le varianti (hello dopo red o hello prima di red ) "manualmente":

hello.*red|red.*hello

Per due "parole di ricerca", probabilmente è accettabile, tuttavia non si adatta bene.

La tua regex ((hello|red).*){2}()* è un po' strano; 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...

quindi questo corrisponde a hello foo hello o red bar red anche.