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 :

Remplacer Masquer contenu [MySQL-5.7]


Sujet :

Requêtes MySQL

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    décembre 2008
    Messages
    667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2008
    Messages : 667
    Points : 246
    Points
    246
    Par défaut Remplacer Masquer contenu
    Bonjour,
    Je cherche à remplacer les noms des étudiants par le nuémro de ligne dans une table de qqs miliers de lignes pour masquer leurs noms ...
    Donc je cherche à partir de 1 puis incrémenter ma colonne jusqu'au dernier étudiant ... pour travailler avec le numéro à la place de nom.
    Merci.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    En instance de retraite
    Inscrit en
    mai 2002
    Messages
    8 887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : En instance de retraite
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 8 887
    Points : 29 659
    Points
    29 659
    Par défaut
    Bonjour,

    Le remplacement doit-il être définitif ou simplement lors des requêtes ?
    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.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    décembre 2008
    Messages
    667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2008
    Messages : 667
    Points : 246
    Points
    246
    Par défaut
    Bonjour,

    Remplacement doit être définitif.

    Merci bien.

    A+

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    En instance de retraite
    Inscrit en
    mai 2002
    Messages
    8 887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : En instance de retraite
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 8 887
    Points : 29 659
    Points
    29 659
    Par défaut
    Citation Envoyé par dari68 Voir le message
    je cherche à partir de 1 puis incrémenter ma colonne jusqu'au dernier étudiant
    Sur quel critère la liste est-elle triée ?

    Pour rappel : par définition une table n'est pas ordonnée.
    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.

  5. #5
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    mars 2010
    Messages
    7 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : mars 2010
    Messages : 7 844
    Points : 27 435
    Points
    27 435
    Billets dans le blog
    2
    Par défaut
    Sous réserve que le critère de rangement soit le nom

    Une solution pour MySQL avant la V8, applicable également en V8

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    set @RN=0
    ;
    select @RN:=@RN+1 as RN
         , T1nom
    from T1     
    order by T1nom

    Une solution applicable à partir de MySQL V8 :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select row_number()
           over(order by T1nom)  as RN
         , T1nom
    from T2
    order by T1nom

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    décembre 2008
    Messages
    667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2008
    Messages : 667
    Points : 246
    Points
    246
    Par défaut
    Bonjour,

    Merci bien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    mysql> select @RN:=@RN+1 as RN , ETUDIANT.NOM from ETUDIANT order by ETUDIANT.NOM;
    +------+----------------+
    | RN   | NOM            |
    +------+----------------+
    |    1 | Jean           |
    |    2 | ADELINE         |
    |    3 | Pierre     |
    |    4 | RIM          |
    |    5 | COMANOMAN         |
    |    6 | Line          |
    |    7 | Maria      |
    |    8 | Hugo         |
    |    9 | Philippe      |
    |   10 | Iyed        |
    |   11 | Amine         |
    |   12 | Lina       |
    |   13 | Estele        |
    Je chercher à remplacer définitivement les noms dans la colone NOM par les numéros ... je veux plus que les noms apparaissent dans cette table ...

    MERCI.

    A+

  7. #7
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    mars 2010
    Messages
    7 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : mars 2010
    Messages : 7 844
    Points : 27 435
    Points
    27 435
    Billets dans le blog
    2
    Par défaut
    il suffit de faire un UPDATE en utilisant le SELECT précédemment proposé

    Exemple :

    Création du jeu d'essai :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    create table T1( T1id  integer auto_increment primary key
                   , T1nom varchar(50) not null
                   , T1ddn date        not null
                   )
    ;               
    insert into T1(T1nom, T1ddn)
    values ('dupond', '2010-05-15')
         , ('da costa', '1992-07-20')
         , ('mac gregor', '1982-03-30')
         , ('bogddanov', '1996-11-04')
    ;    
    select * from T1
    ;

    Résultat :
    T1id T1nom T1ddn
    1 dupond 2010-05-15
    2 da costa 1992-07-20
    3 mac gregor 1982-03-30
    4 bogddanov 1996-11-04

    Remplacement du nom par un n° :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    set @RN=0
    ;
    update T1 
    inner join 
         (select @RN:=@RN+1 as RN   
               , T1nom      as NM
          from T1     
          order by T1nom
         ) as T2
       on T2.NM=T1.T1nom    
    set T1nom=RN
    ;   
    select * from T1
    ;
    Résultat :
    T1id T1nom T1ddn
    1 3 2010-05-15
    2 2 1992-07-20
    3 4 1982-03-30
    4 1 1996-11-04

    Attention : cette solution n'est applicable que si le nom est unique

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    décembre 2008
    Messages
    667
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2008
    Messages : 667
    Points : 246
    Points
    246
    Par défaut
    Merci bcp escartefigue de votre aide.


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegEx] Remplacement du contenu d'une balise HTML
    Par Tchupacabra dans le forum Langage
    Réponses: 3
    Dernier message: 10/08/2008, 00h51
  2. Remplacer le contenu d'un champ
    Par Hamdi dans le forum VBA Access
    Réponses: 5
    Dernier message: 15/07/2008, 17h45
  3. Remplacer le contenu des cellules de destination
    Par cyraile dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/11/2006, 09h23
  4. [XSLT] remplacer le contenu d'un noeud
    Par casgr1 dans le forum XSL/XSLT/XPATH
    Réponses: 10
    Dernier message: 29/06/2006, 10h50
  5. Remplacer le contenu d'un div par un autre
    Par prgasp77 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 25/10/2004, 00h48

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