2012-09-07 47 views
-1

我有3種不同語言的主題名稱。在輸入新主題時,我正在使用JavaScript在頁面上顯示該主題是否已經存在於數據庫中,方法是使用selectlike clause語句。問題是如果主題名稱輸入完全相同,則發現任何重複,但如果只有一些詞語相同,則不會發生重複。如何檢查數據庫中的重複數據?

如何檢查在題目重複來檢查類似的話,而不是整個話題?

+0

將字符串拆分爲單詞(空格分隔)並檢查'WHERE x LIKE'%this%'OR x LIKE'%is%'OR x LIKE'%an%'OR x LIKE'%example% ''?當然,你需要使用字典,刪除所有「常用詞,比如‘這個’,‘是’或‘A’...的東西,必然是在主題的負載。 – ATaylor

+0

你能告訴我們一些你的代碼和一些數據嗎?我假設你使用通配符?但是,如果不是,這可能會有幫助http://www.techotopia.com/index.php/MySQL_Wildcard_Filtering_using_LIKE – Rodders

回答

0

SQL Server提供全文搜索功能。你可以嘗試這個,而不是你喜歡的條款。

0

ATaylor很適合你。要排除特定的常用關鍵字,我建議在您的語句結尾處使用「EXCEPT SELECT WHERE LIKE」語句。

0
SELECT DISTINCT(field) AS var1, COUNT(field) AS var2 FROM table GROUP BY field HAVING var2 > 1; 

這將顯示在當前數據庫中存在兩次或更多次

0

全文搜索任何字段,你可以對你有關聯得分選擇。編寫一個查詢來獲得最相關的結果。

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