Problém je v tom, že kontrolujete přítomnost l dvakrát. To je stejné jako... "Obsahuje l . Ano, stále obsahuje l ." Nekontroluje dva z nich. Zde je 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'
To by mělo odpovídat všem slovům obsahujícím v , dva l 's, e , o a y .
Takže při každém dalším výskytu stejného písmene stačí k dotazu připojit další písmeno .*. Například lullaby potřebuje následující dotaz:
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'
Podívejte se, jak přidám 3 *.l protože existují 3 výskyty l ve slově lullaby .
Totéž lze provést pomocí LIKE místo REGEXP . Zde je ekvivalentní dotaz pro původní otázku...
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%'