Php 从MySQL查询生成单词列表

Php 从MySQL查询生成单词列表,php,mysql,sql,words,mariadb,Php,Mysql,Sql,Words,Mariadb,如何使用PHP从MySQL/MariaDB表生成单词列表 我有下表: id Title 1 A brief history of time 2 philosophy of ecucation 3 introduction to education 4 philosophy and astrophysics 5 astrophysics: astrophysics for dummies 我试图实现的是让MySQL(或PHP)生成一个结果,显示一个单词的使用频率。最好每个标题只将一个单

如何使用PHP从MySQL/MariaDB表生成单词列表

我有下表:

id Title
1  A brief history of time
2  philosophy of ecucation
3  introduction to education
4  philosophy and astrophysics
5  astrophysics: astrophysics for dummies
我试图实现的是让MySQL(或PHP)生成一个结果,显示一个单词的使用频率。最好每个标题只将一个单词的计数器增加1(见id 5)。我的数据库包含大约10000个标题,所以在php中将它们全部提取到一个数组中是不可行的

count word
1     brief
2     philosophy
2(!)  astrophysics <-- this counts only once
1     introduction
etc.
计算字数
1简介
2哲学

2(!)天体物理学尝试以下查询:

SELECT count(*) FROM books WHERE Title LIKE '%astrophysics%';

这不是一项容易的任务。首先需要从文本中检索所有单词,要做到这一点,需要一种单独的索引表(查找表),其id为
id,word
,没有主键,可能带有“substring\u id”字段,表示
word
在图书id
id
标题中的位置。然后你可以这样做:

SELECT DISTINCT word, count(id) as count from lookup
GROUP BY word
ORDER BY word

要形成此表,您需要对insert、update、delete进行一致性检查(可能是触发器),这将改变
查找
表中有关文本和id的更新信息。将此问题用作如何从字符串中检索单词列表(也称为按空格拆分)的来源。

到目前为止您尝试了什么?你有什么代码来生成你发布的计数表?我手动生成计数表只是一个例子。结果应该是这样的。我想不出任何其他解决方案,只能单独获取每一行(使用PHP),然后让PHP生成一个单词列表。我认为这会很耗时,因为整个数据库必须由客户端获取。也许有一种方法可以使用MySQL访问表的索引。由于我刚刚开始学习MySQL/PHP,这对我来说不是一个简单的任务。我会想出一个忽略“重复”单词的解决方案。如果我查询特定的单词,那就行了。然而,我需要探索哪些词是最流行的,因为我事先不知道要查询的词。