J'ai une table des commentaires et une table de messagesMySQL soustracteurs plusieurs fois pour une même ligne de mise à jour
Chaque fois qu'un poste est supprimé, une requête est exécutée pour soustraire le nombre de commentaires (qui sont supprimés par la suite) de chaque le COMMENT_COUNT de l'utilisateur
donc, si un utilisateur a 2 commentaires dans un poste, et ce poste est supprimé, leur équilibre devrait avoir 2 soustraites il
Ma requête est la suivante:
UPDATE users
INNER JOIN comment ON users.id = comment.author
SET comment_count = comment_count - 1
WHERE comment.post = 1
utilisateur A a 2 commentaires avec .post = 1, mais pour une raison que l'utilisateur ne se soustrait COMMENT_COUNT par 1 fois, quand il devrait se produire deux fois
Je pense que ma syntaxe est juste parce que quand je:
SELECT *
FROM users
INNER JOIN comment ON users.id = comment.author
WHERE comment.post = 1
je reçois deux résultats pour l'utilisateur A
ne devrait pas être UPDATE
itérer sur ces deux résultats, soustrayant à chaque fois?
Quelqu'un peut-il expliquer ce qui me manque? merci
+1 Bonne réponse, ne connaissait pas la syntaxe exacte MySQL, donc j'ai attendu que vous répondiez X-) –
aussi ils peuvent être maintenus par des déclencheurs. Btw, 'COUNT (*)' en temps réel est presque toujours cher (c'est-à-dire lorsque vous avez besoin de "trier par commentaires" - pour obtenir les publications les plus populaires). – zerkms
@zerkms: J'essaie de ne pas utiliser de déclencheurs si je n'ai pas à, ce qui est presque impossible sur MySQL :) –