IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Compter et renuméroter une colonne position


Sujet :

Requêtes MySQL

  1. #1
    Membre habitué Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Points : 193
    Points
    193
    Par défaut Compter et renuméroter une colonne position
    Bonjour à tous,
    je voudrais savoir s'il est possible de renuméroter les valeurs d'un colonne.

    pour faire simple une table
    ID | CATÉGORIE | POSITION
    1 | Animaux | 1
    2 | paysages | 1
    3 | jeux | 1
    4 | Animaux | 2
    5 | Animaux | 3

    je voudrais par exemple, lorsque je supprime l'enregistrement id=4 catégorie=animaux position=2 via une requête DELETE, cela me renumérote les positions de la
    catégorie animaux restantes 1,2,...

    ID | CATÉGORIE | POSITION
    1 | Animaux | 1
    2 | paysages | 1
    3 | jeux | 1
    5 | Animaux | 2

    je ne vois pas comment faire cette requête UPDATE ?
    Si quelqu’un pouvait me donner un petit coup de main cela serai cool.

    Cdt

  2. #2
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 146
    Points : 7 388
    Points
    7 388
    Billets dans le blog
    1
    Par défaut
    Essaie ça :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    update matable set position = rank() over(partition by catégorie order by id);

    PS : Et tu remarqueras au passage que ta colonne "position" est une colonne calculée, et n'a donc rien à faire dans la table
    On ne jouit bien que de ce qu’on partage.

  3. #3
    Membre habitué Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Points : 193
    Points
    193
    Par défaut
    il m'indique une erreur
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'over(partition BY categorie ORDER BY id)' at line 1

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 778
    Points
    30 778
    Par défaut
    Si tu avais précisé dès le départ que tu utilisais MySQL, on ne t'aurait pas proposé de résoudre ton problème avec des fonctions de regroupement analytiques... qui sont présentes dans la norme depuis 2003 et prises en charge par presque tous les SGBD... sauf MySQL
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

Discussions similaires

  1. Formule compter valeurs d'une colonne sans doublons
    Par spark_legion dans le forum Modélisation
    Réponses: 2
    Dernier message: 05/05/2011, 15h12
  2. [XL-2003] Compter valeurs d'une colonne en fonction d'une autre colonne
    Par greggy dans le forum Excel
    Réponses: 2
    Dernier message: 03/11/2009, 13h51
  3. Renuméroter une colonne en conservant l'ordre existant
    Par jeanch_springer dans le forum Langage SQL
    Réponses: 6
    Dernier message: 31/10/2007, 14h23
  4. Ajouter une colonne en première position
    Par Alexandre T dans le forum Oracle
    Réponses: 22
    Dernier message: 25/10/2005, 12h58
  5. Comment compter seulement une valeur d'une colonne
    Par kolac dans le forum Langage SQL
    Réponses: 7
    Dernier message: 28/07/2005, 02h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo