La consulta de mysql lleva más de 1 día, cómo explicarlo:
update posts set category_id = (
SELECT keyword_id
FROM post_keywords
where keyword_id IN (
SELECT keyword_id
FROM post_keywords
where id_post = posts.id_post)
group by keyword_id
order by count(keyword_id) DESC
limit 0,1
);
alguna solución ?
Respuestas
2 para la respuesta № 1Creo que no es exactamente lo mismo, pero creo que el resultado será el que quieres que sea. Estoy más curioso de cómo (¿SI?) Esto podría afectar el rendimiento.
UPDATE posts
SET category_id = (
SELECT pkw.keyword_id
FROM post_keywords pkw
JOIN (
SELECT keyword_id, cnt = COUNT(*)
FROM post_keywords
GROUP BY keyword_id ) cnts
ON cnts.keyword_id = pkw.keyword_id
WHERE pkw.id_post = posts.id_post
ORDER BY cnt DESC
LIMIT 0,1
)