3 つの異なる言語のトピック名の 3 つのフィールドがあります。select
新しいトピックを入力するとき、andlike clause
ステートメントを使用してそのトピックがデータベースに既に存在する場合は、JavaScript を使用してページに表示します。問題は、入力されたトピック名がまったく同じである場合に重複が検出されますが、一部の単語のみが同じ場合には検出されないことです。
トピック全体ではなく単語の類似性をチェックするトピックの重複をチェックするにはどうすればよいですか?
3 つの異なる言語のトピック名の 3 つのフィールドがあります。select
新しいトピックを入力するとき、andlike clause
ステートメントを使用してそのトピックがデータベースに既に存在する場合は、JavaScript を使用してページに表示します。問題は、入力されたトピック名がまったく同じである場合に重複が検出されますが、一部の単語のみが同じ場合には検出されないことです。
トピック全体ではなく単語の類似性をチェックするトピックの重複をチェックするにはどうすればよいですか?
SQL Serverは、全文検索機能を提供します。like句の代わりにこれを試すことができます。
SELECT DISTINCT(field) AS var1, COUNT(field) AS var2 FROM table GROUP BY field HAVING var2 > 1;
これにより、現在のデータベースに2回以上存在するフィールドが表示されます
ATaylor は、ほとんどあなたのためにそれを綴っています。特定の一般的なキーワードを除外するには、ステートメントの最後に「EXCEPT SELECT WHERE LIKE」ステートメントを使用することをお勧めします。
全文検索では、関連性スコアを選択できます。最も関連性の高い結果を取得するためのクエリを記述します。
SELECT MATCH('content') AGAINST ('keyword1
keyword2') as relevancy_score FROM topic WHERE MATCH
('Content') AGAINST('+keyword1 +keyword2' IN
BOOLEAN MODE) HAVING relevancy_score > 0.2 ORDER
BY relevancy_score DESC.
このリンクを参照できます。 http://dev.mysql.com/doc/refman/5.7/en/fulltext-boolean.html