ここでの問題は、lの存在をチェックしていることです。 2回。これは...「lが含まれています 。はい、まだlが含まれています 。"2つをチェックしていません。別の方法があります...
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'
これは、vを含むすべての単語と一致する必要があります 、2つのl 、e 、o 、およびy 。
したがって、同じ文字が1つおきに出現する場合は、クエリに別の。*文字を追加するだけです。たとえば、lullaby 次のクエリが必要です:
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'
3つの*.lを追加する方法をご覧ください lが3回出現するため lullabyという言葉で 。
LIKEでも同じことができます REGEXPの代わりに 。これが元の質問と同等のクエリです...
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%'