Обновление количества частых терминов в словаре для некоторого корпуса. Невозможно выполнить в одном запросе. Вместо этого я собираю данные count во временную таблицу, а затем INSERT/UPDATE словарь. Удовлетворение того, что будет правильным синтаксисом для UPDATE countInCorpus в одной команде.INSERT FROM SELECT UPDATE ON DUPLICATES UPDATE = count (*)
Текущий синтаксис:
INSERT INTO temp_table (name, countInCorpus)
SELECT name,count(*) AS theCount
FROM corpus
GROUP BY name having theCount > 9);
INSERT INTO dict (name, countInCorpus)
SELECT name, countInCorpus
FROM temp_table ON DUPLICATE KEY UPDATE dict.countInCorpus=temp_table.countInCorpus;
В противном случае один шаг синтаксиса (что приводит к "неизвестный колонке 'theCount' в списке полей"):
INSERT INTO dict (name, countInCorpus)
SELECT name,count(*) AS theCount
FROM corpus
GROUP BY name having theCount > 9
ON DUPLICATE KEY UPDATE dict.countInCorpus=theCount;
за работой. Благодарю. (обратите внимание, что существует опечатка - пороговое значение отсутствует на четвертой строке theCount> 9) – user3127882