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%'