El problema aquí es que está comprobando la presencia de l
dos veces. Eso es lo mismo que... "Contiene un l
. Sí, todavía contiene una l
." No está buscando dos de ellos. Aquí hay una alternativa...
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'
Esto debería coincidir con todas las palabras que contengan una v
, dos l
's, una e
, un o
, y una y
.
Entonces, cada dos veces que aparezca la misma letra, simplemente agregue otra .*letra a la consulta. Por ejemplo, lullaby
necesita la siguiente consulta:
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'
Mira cómo agrego 3 *.l
porque hay 3 ocurrencias de l
en la palabra lullaby
.
Lo mismo también se puede lograr con LIKE
en lugar de REGEXP
. Aquí hay una consulta equivalente a la pregunta original...
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%'