gpt4 book ai didi

php - 如何计算 Mysql 数据库行中特定单词的出现次数?

转载 作者:太空宇宙 更新时间:2023-11-03 12:11:05 25 4
gpt4 key购买 nike

我是 PHP 新手。我想计算 MySQL 数据库行中特定单词的出现次数。例如:有两列名称和描述。

---------------------------------------------------------------
| name | description |
---------------------------------------------------------------
| abcd | My name ***is*** abcd. My father's name ***is*** xyz |
---------------------------------------------------------------
| xyzt | My name ***is*** xyz. I am a good girl. |
---------------------------------------------------------------

我想计算第一行描述列中单词“is”的出现次数。在上面的示例中,“is”在第一行出现两次,在第二行出现一次。请指导我。

最佳答案

在 StackOverflow 上有很多纯 SQL 尝试解决方案,但其中大多数计算字符串,而不是单词。所以let's reiterate :

一般来说,SQL,尤其是 MySQL,并不是这项工作的最佳选择。你最好用 PHP 来做(如果结果集“足够小”): p>

$count = preg_match_all("/\\b$word\\b/", $input, &$matches);

Alternative, richer solutions基于 str_word_count() 存在.

请注意,它可以在纯 SQL 中实现:

  • with a stored procedure like this one .

    在此示例中,将正则表达式替换为 [[:<:]]your_word[[:>:]]匹配一个特定的词。然后就是SELECT wordcount(your_column) FROM your_table .通过添加输入参数(要计算出现次数的单词)改进程序。然后* RLIKE CONCAT('[[:<:]]', input_parameter, '[[:>:]]') .

  • 即使没有存储过程(但 with the help of an auxiliary table)。

    在此示例中,替换 HAVING word <> ' 'HAVING word <> 'your_word'计算一个特定的词。 GROUP BY word, maintable.id (而不仅仅是 word )逐行获取详细信息。添加WHERE过滤掉行的子句。缺点:只有一个空格被识别为单词分隔符。

我认为采用基于 PHP 的解决方案的好处是显而易见的。

关于php - 如何计算 Mysql 数据库行中特定单词的出现次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24184052/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com