web-dev-qa-db-fra.com

Colonne de mise à jour MySQL +1?

Je me demandais quel serait le moyen le plus simple de mettre à jour une colonne de +1? Je mettrai à jour le nombre de messages d'une catégorie en fonction du moment où les utilisateurs soumettront un nouveau message.

Merci.

21
Cory

Le moyen le plus simple consiste à ne pas stocker le nombre, en s'appuyant sur la fonction d'agrégation COUNT pour refléter la valeur telle qu'elle est dans la base de données:

   SELECT c.category_name,
          COUNT(p.post_id) AS num_posts
     FROM CATEGORY c
LEFT JOIN POSTS p ON p.category_id = c.category_id

Vous pouvez créer une vue pour héberger la requête mentionnée ci-dessus, vous pouvez donc interroger la vue comme vous le feriez pour une table ...

Mais si vous êtes prêt à enregistrer le numéro, utilisez:

UPDATE CATEGORY
   SET count = count + 1
 WHERE category_id = ?

..remplacer "?" avec la valeur appropriée.

38
OMG Ponies

Tu peux faire:

UPDATE categories SET posts = posts + 1 O _ category_id = 42;</code>

27
Michael Banzon

Que diriez-vous:

update table
set columnname = columnname + 1
where id = <some id>
8
update post set count = count + 1 where id = 101
5
KoolKabin
update TABLENAME
set COLUMNNAME = COLUMNNAME + 1
where id = 'YOURID'
1
praveenraj4ever