Problemet her er, at du tjekker for tilstedeværelsen af l
to gange. Det er det samme som... "Den indeholder en l
. Jep, indeholder stadig en l
." Det tjekker ikke efter to af dem. Her er et alternativ...
SELECT word FROM us_6 WHERE
word REGEXP 'v' AND
word REGEXP 'l.*l' AND
word REGEXP 'e' AND
word REGEXP 'o' AND
word REGEXP 'y'
Dette bør matche alle ord, der indeholder en v
, to l
's, en e
, en o
og en y
.
Så hver anden forekomst af det samme bogstav skal du blot tilføje et andet .*-bogstav til forespørgslen. For eksempel lullaby
har brug for følgende forespørgsel:
SELECT word FROM us_7 WHERE
word REGEXP 'l.*l.*l' AND
word REGEXP 'u' AND
word REGEXP 'a' AND
word REGEXP 'b' AND
word REGEXP 'y'
Se, hvordan jeg tilføjer 3 *.l
fordi der er 3 forekomster af l
i ordet lullaby
.
Det samme kan også opnås med LIKE
i stedet for REGEXP
. Her er en tilsvarende forespørgsel til det oprindelige spørgsmål...
SELECT word FROM us_6 WHERE
word LIKE '%v%' AND
word LIKE '%l%l%' AND
word LIKE '%e%' AND
word LIKE '%o%' AND
word LIKE '%y%'