Het probleem hier is dat je controleert op de aanwezigheid van l tweemaal. Dat is hetzelfde als... "Het bevat een l . Yep, bevat nog steeds een l ." Het controleert niet op twee van hen. Hier is een alternatief...
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'
Dit moet overeenkomen met alle woorden met een v , twee l 's, een e , een o , en een y .
Dus elke keer dat dezelfde letter voorkomt, voegt u gewoon een andere .*letter toe aan de zoekopdracht. Bijvoorbeeld lullaby heeft de volgende vraag nodig:
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'
Zie hoe ik 3 *.l . toevoeg omdat er 3 keer voorkomen dat l . voorkomt in het woord lullaby .
Hetzelfde kan ook worden bereikt met LIKE in plaats van REGEXP . Hier is een equivalente vraag voor de oorspronkelijke vraag...
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%'