如何使用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.
尝试以下查询:
SELECT count(*) FROM books WHERE Title LIKE '%astrophysics%';
这不是一件容易的事。首先需要从文本中检索所有单词,要做到这一点,您需要一种单独的索引表(查找表)id,word
,没有主键,可能带有"substring_id"字段,表示word
在图书id id
的标题中的位置。然后你可以这样做:
SELECT DISTINCT word, count(id) as count from lookup
GROUP BY word
ORDER BY word
要形成这个表,您需要对插入、更新、删除进行一致性检查(可能是触发器),这将更改lookup
表,更新有关文本和id的信息。你能在MySQL查询中拆分/爆炸一个字段吗?作为如何从字符串(也称为按空格分割)中检索单词列表的源代码。