如何计算内容mysql匹配中的单词匹配?

时间:2016-01-11 05:53:14

标签: php mysql

我想使用匹配来查找文章,并计算与本文匹配的关键字数量。例如,如果我的文章是“今天的天气非常好”,而且我的关键字“今天很好”,那么计数应为2,我该怎么办呢。当我使用下面的代码时,它会计算文章匹配的数量,但不会计算文章中的关键字匹配数量。



<?php
SELECT COUNT(*) FROM table WHERE MATCH (article) AGAINST ('today nice');
?>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:0)

请查看以下示例。

1。获取包含&#39;今天&#39;并且很好的&#39;

SELECT COUNT(*) FROM table WHERE MATCH(article) AGAINST('+today +nice' IN BOOLEAN MODE);

2。获取包含&#39;今天&#39;但如果它们还包含“不错”,则排列得更高。

SELECT COUNT(*) FROM table WHERE MATCH(article) AGAINST('+today nice' IN BOOLEAN MODE);

3。获取包含&#39;今天&#39;或者很好的&#39;

SELECT COUNT(*) FROM table WHERE MATCH(article) AGAINST('today nice' IN BOOLEAN MODE);

有关详情,您可以乘坐MYSQL Documentation

希望这对你有所帮助!

答案 1 :(得分:0)

'the'替换为您要计算的子字符串值。将`text`替换为您的列名。

SELECT (LENGTH(`text`) - LENGTH(REPLACE(`text`, 'the', ''))) / LENGTH('the') AS total 
FROM someTable;

答案 2 :(得分:0)

以下示例可能会有所帮助:

mysql> select `id`, `url`, LENGTH(`url`) - LENGTH(REPLACE(`url`, '/', '')) as `number` from `url`;
+----+-------------------------------+--------+
| id | url                           | number |
+----+-------------------------------+--------+
|  1 | http://www.google.com         |      2 |
+----+-------------------------------+--------+