使用MySQL查询计算在文本列中使用许多ID确定的单词

时间:2015-11-10 14:01:20

标签: mysql count word

这个问题是关于MySQL Query的。我有三张桌子:

1.brand(由:文本组成)

2.englishkeyword(由ID,word组成)

3.englishmodel(包括:ID,Pscore)

我想算一下“文字”中有多少单词'使用已经在单词中确定的单词'。然后将结果存储在' Pscore'中。这是我的代码

SELECT ek.ID as ID, COUNT(*) as Pscore
FROM englishkeyword ek, brand
WHERE (brand.text LIKE CONCAT('%', ek.word, '%'))
GROUP BY ek.ID;

INSERT INTO englishmodel (ID, Pscore)
    SELECT ek.ID as ID, COUNT(*) as Pscore
    FROM englishkeyword ek, brand
    WHERE (brand.text LIKE CONCAT('%', ek.word, '%'))
    GROUP BY ek.ID
ON DUPLICATE KEY
UPDATE Pscore = VALUES(Pscore)

它有效。 我的问题是:我可以在一段时间内对许多ID进行此查询吗?假设我有1000个身份证。

然后我这样编辑:

randoDub

但结果是这样的:

enter image description here

真诚地感谢任何回答

1 个答案:

答案 0 :(得分:1)

以下查询返回每个单词的分数:

SELECT ek.ID as ID, COUNT(*) as Pscore
FROM englishkeyword ek, brand
WHERE (brand.text LIKE CONCAT('%', ek.word, '%'))
GROUP BY ek.ID

然后您可以将此查询用于INSERT ... ON DUPLICATE KEY UPDATE分数。

INSERT INTO englishkeywordmodel (ID, Pscore)
    SELECT ek.ID as ID, COUNT(*) as Pscore
    FROM englishkeyword ek, brand
    WHERE (brand.text LIKE CONCAT('%', ek.word, '%'))
    GROUP BY ek.ID
ON DUPLICATE KEY
UPDATE Pscore = VALUES(Pscore)