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