Vấn đề ở đây là bạn đang kiểm tra sự hiện diện của l
hai lần. Điều đó giống như ... "Nó chứa một l
. Đúng, vẫn chứa một l
. "Nó không kiểm tra hai trong số họ. Đây là một giải pháp thay thế ...
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'
Điều này phải khớp với tất cả các từ có chứa v
, hai l
's, một e
, một o
và một y
.
Vì vậy, mỗi lần xuất hiện khác của cùng một chữ cái, chỉ cần thêm một chữ cái. * Khác vào truy vấn. Ví dụ:lullaby
cần truy vấn sau:
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'
Xem cách tôi thêm 3 *.l
vì có 3 lần xuất hiện của l
trong từ lullaby
.
Điều tương tự cũng có thể được thực hiện với LIKE
thay vì REGEXP
. Đây là một truy vấn tương đương cho câu hỏi ban đầu ...
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%'