主にデータベースの構造が悪いために問題が発生しています。コードが非常に乱雑でテーブルが非常に大きい会社のためにこれをコーディングしているので、構造を修正するオプションではないと思います。
とにかく、私の問題は、文字列内で単独ではない値を何らかの方法でグループ化しようとしているということです...それらはコンマで区切られた値を格納しています...
field: "category" value: 'var1, var2, var3'
そして、次のクエリを使用して検索します。
SELECT name, category
FROM companies
WHERE (MATCH(name, category) AGAINST ('$search' IN BOOLEAN MODE)
OR category LIKE '$search%')
たとえば var2 と一致し(ただし、3 つの変数に限定されませんが、ソロまたはそれ以上の変数にすることができます)、PHP で手動で分割しても問題ありません。十分な一致は得られませんが、たとえば、さまざまな検索で 10 個の一致が必要です。より具体的に言うと、自動提案機能を作成しています。つまり、たとえば、「moto%」をモーターバイク、モーターのみなどと一致させたいと考えていますが、同じ値を取得し続けています。 "motorbike" を含む結果が表示されますが、DB 構造が正しくないために GROUP BY を使用できないため、それらをフィルター処理する方法がわかりません...
私はこれを見つけました: T-SQL - LIKE を使用した GROUP BY - これは可能ですか? それは解決策のように見えましたが、私が試した限りでは、私が望んでいたもので動作させることができませんでした.
だから、どの解決策があるのか 疑問に思っています...これを回避する方法が絶対にない場合は、おそらくdb構造を修正する必要があるかもしれません(しかし、これは本当に最後のオプションでなければなりません)