MYSQL mise à JOUR avec DANS et sous-Requête
Salut j'ai tables comme ceci :
entrée de la table :
id | total_comments
_____________________
1 | 0
2 | 0
3 | 0
4 | 0
table commentaires :
id | eid | commentaire
_____________________
1 | 1 | commentaire sdfd
2 | 1 | test
3 | 1 | commentaire de texte
4 | 2 | dummy commentaire
5 | 2 | exemple de commentaire
6 | 1 | fg fgh dfh
Requête j'écris :
UPDATE entry
SET total_comments = total_comments + 1
WHERE id IN ( SELECT eid
FROM comments
WHERE id IN (1,2,3,4,5,6))
Résultats que j'obtiens est :
entrée de la table :
id | total_comments
_____________________
1 | 1
2 | 1
3 | 0
4 | 0
Résultats attendus :
entrée de la table :
id | total_comments
_____________________
1 | 4
2 | 2
3 | 0
4 | 0
Toute aide sera appréciée.
OriginalL'auteur Johal | 2010-06-07
Vous devez vous connecter pour publier un commentaire.
Utilisation:
Le seul moyen, je pense, pour exécuter une sous-requête quelque chose comme ça, ce que je ne sais pas comment faire: mettre à JOUR l'entrée SET total_comments = total_comments + @comte where id IN ( SELECT eid, count(*) as @count from commentaires where id IN (1,2,3,4,5,6)) mais ne fonctionne pas coz de plusieurs lignes et aussi je ne sais pas comment consulter @compter en condition de jeu 🙁
OriginalL'auteur OMG Ponies
Si vous avez vraiment besoin total_comments dans un tableau à part, j'aimerais apporter un point de VUE.
De cette façon, vous éviter la tâche de maintenance de la mise à jour de la total_comments de table complètement.
OriginalL'auteur mluebke
C'est exactement ce à quoi je m'attends. L'id est DANS l'ensemble de la donner, donc total_comments = total_comments + 1.
Il ne va pas en ajouter un à chaque instance de la même valeur: ce n'est pas comme DANS les oeuvres de la. EN sera de retour un simple booléen oui/non.
OriginalL'auteur Satanicpuppy
Essayer:
OriginalL'auteur VeeArr
OriginalL'auteur Johal