3

myisam テーブルを作成して、さまざまな単語の組み合わせに一致し、特定の検索文字列から余分なものを何も返さない結果を返す方法。

タグテーブルで次のクエリを使用しています

SELECT * FROM tags WHERE MATCH (name) AGAINST('word1 word2'));

テーブルには次のような行が含まれる場合があります

  • 1ワード1ワード2ワード3
  • 2 単語2 単語3 単語4
  • 3ワード1
  • 4ワード3ワード2
  • 5ワード2
  • 6 単語 2 単語 1
  • 7 ワード1 ワード2
  • 8ワード3ワード4

結果として次の行のみが必要です

  • 3ワード1
  • 5ワード2
  • 6 単語 2 単語 1
  • 7 ワード1 ワード2

しかし、私が得ている実際の結果は

  • 1ワード1ワード2ワード3
  • 2 単語2 単語3 単語4
  • 3ワード1
  • 4ワード3ワード2
  • 5ワード2
  • 6 単語 2 単語 1
  • 7 ワード1 ワード2

これを達成する方法??

ブールモード検索を試しましたが、検索結果に必須として+指定された単語が表示されますが、これは私が望むものではありません。+

4

2 に答える 2

0

mysql FULLTEXT があなたが望むものをサポートしているとは思いません。私はあなたがやりたいことしかできなかった

SELECT * 
FROM tags 
where (name LIKE 'word1' OR name LIKE 'word2' OR name LIKE 'word1 word2' or name LIKE 'word2 word1') ;

フルテキストの詳細については、こちらのmysql フルテキストをご覧ください。

于 2013-01-10T07:00:14.153 に答える