我有 3 种不同语言的主题名称字段。select
输入新主题时,如果该主题已通过 using和like clause
语句存在于数据库中,我将使用 JavaScript 在页面上显示。问题是如果输入的主题名称完全相同,它会发现任何重复,但如果只有一些单词相同,则不会。
如何检查主题的重复,检查词的相似性而不是整个主题?
我有 3 种不同语言的主题名称字段。select
输入新主题时,如果该主题已通过 using和like clause
语句存在于数据库中,我将使用 JavaScript 在页面上显示。问题是如果输入的主题名称完全相同,它会发现任何重复,但如果只有一些单词相同,则不会。
如何检查主题的重复,检查词的相似性而不是整个主题?
SQL Server 提供全文搜索功能。你可以试试这个而不是你的like子句。
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