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

Count determined word with many IDs in text column using MySQL query

这个问题是关于MySQL查询的。我有三个表:

1.brand(包括:文本)

2.englishkeyword(由ID、word组成)

3.englishmodel(组成:ID,Pscore)

我想统计'text'中有多少个单词与'word'中已经确定的单词。然后将结果存储在'Pscore'中。这是我的代码

UPDATE englishmodel 
SET Pscore=( SELECT COUNT(*)
            FROM brand 
            WHERE text LIKE CONCAT('%', (SELECT word 
                                         FROM englishkeyword 
                                         WHERE ID=1), '%')
          ) 
WHERE ID=1;

并且有效。 我的问题是:我可以一次查询多个 ID 吗?假设我有 1000 个 ID。

然后我这样编辑:

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)

但是结果是这样的:

真诚地感谢任何答案

下面查询returns每个词的得分:

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)