我有3種不同語言的主題名稱。在輸入新主題時,我正在使用JavaScript在頁面上顯示該主題是否已經存在於數據庫中,方法是使用select
和like clause
語句。問題是如果主題名稱輸入完全相同,則發現任何重複,但如果只有一些詞語相同,則不會發生重複。如何檢查數據庫中的重複數據?
如何檢查在題目重複來檢查類似的話,而不是整個話題?
我有3種不同語言的主題名稱。在輸入新主題時,我正在使用JavaScript在頁面上顯示該主題是否已經存在於數據庫中,方法是使用select
和like clause
語句。問題是如果主題名稱輸入完全相同,則發現任何重複,但如果只有一些詞語相同,則不會發生重複。如何檢查數據庫中的重複數據?
如何檢查在題目重複來檢查類似的話,而不是整個話題?
SQL Server提供全文搜索功能。你可以嘗試這個,而不是你喜歡的條款。
ATaylor很適合你。要排除特定的常用關鍵字,我建議在您的語句結尾處使用「EXCEPT SELECT WHERE LIKE」語句。
SELECT DISTINCT(field) AS var1, COUNT(field) AS var2 FROM table GROUP BY field HAVING var2 > 1;
這將顯示在當前數據庫中存在兩次或更多次
全文搜索任何字段,你可以對你有關聯得分選擇。編寫一個查詢來獲得最相關的結果。
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
將字符串拆分爲單詞(空格分隔)並檢查'WHERE x LIKE'%this%'OR x LIKE'%is%'OR x LIKE'%an%'OR x LIKE'%example% ''?當然,你需要使用字典,刪除所有「常用詞,比如‘這個’,‘是’或‘A’...的東西,必然是在主題的負載。 – ATaylor
你能告訴我們一些你的代碼和一些數據嗎?我假設你使用通配符?但是,如果不是,這可能會有幫助http://www.techotopia.com/index.php/MySQL_Wildcard_Filtering_using_LIKE – Rodders