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