Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Débuter
Débuter Forum d'entraide pour débuter avec MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/12/2010, 09h59   #1
Membre du Club
 
Inscription : juin 2006
Messages : 228
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 228
Points : 51
Points : 51
Par défaut operatons sur une table

bonjour,

je recherche les syntaxes mysql suivantes

je souhaiterai faire deux choses sur une table

1) dupliquer une colonne avec ses données sur la même table

exemple j'ai une table avec 5 colonnes je voudrai qu'il y'ai une 6 ém colonne
qui soit identique à la deuxième colonne.


2) faire une recherche sur une colonne comme suit : je voudrai remplacer tous les champs commençant par deux caractères particuliers par un texte

exemple j'ai des champs commençant par 05 et je voudrai remplacer par "toto"
ainsi 055241 , 055874 etc.. serait remplacé par toto

merci à vous
serna est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2010, 10h58   #2
Membre chevronné
 
Homme Taoufiq Ben
Développeur Web
Inscription : mai 2009
Messages : 456
Détails du profil
Informations personnelles :
Nom : Homme Taoufiq Ben
Âge : 25
Localisation : Maroc

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2009
Messages : 456
Points : 639
Points : 639
Pour la premiere question je connais une solution avec 2 requete
Code :
ALTER TABLE TABLE ADD aaa INT NOT NULL
Code :
INSERT INTO aaa (SELECT bbb FROM TABLE)
2eme
Code :
1
2
 
UPDATE TABLE SET champs = 'toto' WHERE champs LIKE '05%'
m4riachi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2010, 11h13   #3
Membre du Club
 
Inscription : juin 2006
Messages : 228
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 228
Points : 51
Points : 51
merci
je vais essayez tes solutions
serna est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2010, 11h26   #4
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 980
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 980
Points : 18 224
Points : 18 224
Envoyer un message via MSN à CinePhil
Citation:
Envoyé par serna Voir le message
1) dupliquer une colonne avec ses données sur la même table

exemple j'ai une table avec 5 colonnes je voudrai qu'il y'ai une 6 ém colonne
qui soit identique à la deuxième colonne.
Pourquoi veux-tu faire cela ? C'est apparemment de la redondance de données !

Citation:
Envoyé par m4riachi
Pour la premiere question je connais une solution avec 2 requete
Code :
ALTER TABLE TABLE ADD aaa INT NOT NULL
Code :
INSERT INTO aaa (SELECT bbb FROM TABLE)
Faux pour la seconde requête ! Si tu fais une requête INSERT, tu ajoutes des lignes à la table, tu ne dupliques pas la deuxième colonne !

Citation:
Envoyé par serna Voir le message
2) faire une recherche sur une colonne comme suit : je voudrai remplacer tous les champs commençant par deux caractères particuliers par un texte

exemple j'ai des champs commençant par 05 et je voudrai remplacer par "toto"
ainsi 055241 , 055874 etc.. serait remplacé par toto
D'abord, une table est composée de colonnes, pas de champs !

Et là encore, je me demande pourquoi tu veux faire ça !
Citation:
Envoyé par m4riachi
2eme
Code :
1
2
 
 UPDATE TABLE SET champs = 'toto' WHERE champs LIKE '05%'
OK pour cette requête sauf que la table ne doit pas s'appeler "table" qui est un mot réservé SQL, comme le montre la coloration syntaxique ci-dessus.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2010, 15h09   #5
Membre du Club
 
Inscription : juin 2006
Messages : 228
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 228
Points : 51
Points : 51
en fait j'ai une colonne avec des codes insee de villes et j'aimerais d'abord dupliquer cette colonne , puis la transformer de la manière suivante :

si mon code insee commence par 93 je remplace ( dans la colonne dupliqué ) par seine-saint-denis , si ça commence par 94 je remplace par val-de-marne , etc..
serna est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2010, 09h33   #6
Membre du Club
 
Inscription : juin 2006
Messages : 228
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 228
Points : 51
Points : 51
j'ai donc dupliqué la colonne comme suit

Code :
UPDATE  nomdetable SET colonnecible = colonnesource
puis fait un update avec like %

ça fonctionne

bonne fêtes de fin d'année !!
serna est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2010, 10h46   #7
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 980
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 980
Points : 18 224
Points : 18 224
Envoyer un message via MSN à CinePhil
Citation:
Envoyé par serna Voir le message
en fait j'ai une colonne avec des codes insee de villes et j'aimerais d'abord dupliquer cette colonne , puis la transformer de la manière suivante :

si mon code insee commence par 93 je remplace ( dans la colonne dupliqué ) par seine-saint-denis , si ça commence par 94 je remplace par val-de-marne , etc..
Tu devrais plutôt avoir une table des départements et mettre dans ta nouvelle colonne l'identifiant de ce département. En y mettant le nom du département, tu as redondance de données, occupation inutile de mémoire, risque de saisie du même département avec des orthographes différentes... bref, tu dénormalises ta BDD, pour autant qu'elle le fut.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h00.


 
 
 
 
Partenaires

Hébergement Web