如何使用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.
答案 0 :(得分:0)
尝试以下查询:
SELECT count(*) FROM books WHERE Title LIKE '%astrophysics%';
答案 1 :(得分:0)
这不是一件容易的事。您首先需要检索文本中的所有单词,为此,您需要一种单独的索引表(查找表)id,word
没有主键,可能使用&#34; substring_id&#34;字段表示图书ID word
标题中id
的位置。然后你可以这样做:
SELECT DISTINCT word, count(id) as count from lookup
GROUP BY word
ORDER BY word
要形成此表,您需要在插入,更新,删除时进行一致性检查(可能是触发器),这将更改有关文本和ID的lookup
表更新信息。使用此问题Can you split/explode a field in a MySQL query?作为如何从字符串中检索单词列表的来源(也称为空格分割)。