Masalahnya di sini adalah Anda memeriksa keberadaan l dua kali. Itu sama dengan... "Ini berisi l . Ya, masih mengandung l ." Ini tidak memeriksa dua dari mereka. Ini alternatifnya...
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'
Ini harus cocok dengan semua kata yang mengandung v , dua l 's, sebuah e , sebuah o , dan y .
Jadi, setiap kemunculan huruf yang sama, tambahkan saja .*huruf lain ke kueri. Misalnya, lullaby membutuhkan kueri berikut:
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'
Lihat bagaimana saya menambahkan 3 *.l karena ada 3 kemunculan l dalam kata lullaby .
Hal yang sama juga dapat dilakukan dengan LIKE bukannya REGEXP . Inilah kueri yang setara untuk pertanyaan awal...
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%'