这个问题是关于 MySQL 查询的。我有三个表:
1.品牌(包括:文字)
2.englishkeyword(由ID、word组成)
3.englishmodel(组成:ID,Pscore)
我想用已经在“word”中确定的单词来计算“text”中有多少个单词。然后将结果存储在“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)
但是结果是这样的:
真诚地感谢任何答案
最佳答案
以下查询返回每个单词的分数:
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)
关于mysql - 使用 MySQL 查询计算文本列中具有许多 ID 的确定词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33631767/