MATCH(nombre, mat1, mat2, mat3, mat4, mat5, mat6, mat7)
は、単一のインデックスフィールドとして機能します。そのため、一部のテキストが一致すると、どのビットを通知する機能がありません。
あなたはまだこのようにマッチングの速度をフルスプレッド照合、および(*
の代わりにSELECT
後)フィールドリスト内の各フィールドに対して個別MATCH()
のコールを使用することができるために、一定のレベルのための関連性をチェックしますどのフィールドが一致したかを検出する。
SELECT
IF(MATCH(nombre) AGAINST ('search phrase' IN BOOLEAN MODE) > 0.9, nombre, NULL) AS nombre,
IF(MATCH(mat1) AGAINST ('search phrase' IN BOOLEAN MODE) > 0.9, mat1, NULL) AS mat1
/* etc */
FROM myTable
WHERE MATCH(nombre, mat1, mat2, mat3, mat4, mat5, mat6, mat7)
AGAINST ('search phrase' IN BOOLEAN MODE)
ORDER BY nombre
NULLがあなたも、あまりにも個々のフィールド上FULLTEXT
インデックスを望む可能性があることに注意、一致しないフィールドに返されます。私が正しく覚えていれば、BOOLEAN MODE
を使用することは絶対条件ではありません。
$ busqueda = "'"; < - エラーが発生すると、クエリーをダンプする可能性があります。もしそうなら、私はテーブル名を持っています。その後、次回は$ busqueda = "');テーブルを削除する[テーブル名]; - "; //あなたはこれらのようなSQLインジェクションのためにスクラブしていると思いますか? – DampeS8N