あなたの質問からはわかりにくいですが、あなたの顧客テーブルは次のようになると思います。
id fName lName deleted
---------------------------------
1 John Doe N
2 Bill Clinton N
3 Fred Smith N
4 George Bush Y
質問で述べたように、クエリは次のように表示されるため、機能しません。
SELECT *
FROM customer
WHERE fname LIKE '%Bill Clinton%' AND deleted = 'N'
OR
lName LIKE '%Bill Clinton%' AND deleted = 'N'
fNameまたはlNameフィールドに「BillClinton」が含まれているテーブルにはレコードがありません
#attributes.q#テキストをマッサージして、次のようなものを生成する必要があります。
SELECT *
FROM customer
WHERE ((fName LIKE '%Bill%') OR (fName LIKE '%Clinton%')) AND deleted = 'N'
OR
((lName LIKE '%Bill%') etc.....
LIKE比較は、ファイル名にワイルドカードを使用するのと非常によく似ています。彼らはあなたのためにテキストのブロックを分割しませんが、テキストのチャンクが別のテキストのチャンクの中に逐語的に存在するかどうかを教えてくれます。
必要なのは全文検索だと思います。これは、クエリ文字列内の個々の単語を考慮して結果を返します。もちろん、FULLTEXTはMyISAMテーブルタイプでのみ使用できるため、InnoDBまたはその他のタイプを使用している場合は、運が悪いことになります。