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 :

UPDATE de tous les champs


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Homme Profil pro
    Dataminer
    Inscrit en
    Juillet 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Dataminer

    Informations forums :
    Inscription : Juillet 2008
    Messages : 54
    Points : 49
    Points
    49
    Par défaut UPDATE de tous les champs
    Bonjour,

    J'aimerais faire une requête qui me remplace un caractère en masse, sur tous mes champs, par un autre caractère.

    Je souhaiterais en fait faire une requête qui fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE ma_table SET ma_table.* = 'a' WHERE ma_table.* = 'b'
    Est-ce que c'est possible de le faire sans désigner chaque champs dans mon UPDATE ?

    Merci.

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Ta requête signifierait que toutes les colonnes (et non pas champ !) de la table contiennent la même valeur.
    A quoi peut bien servir cette table ?

    Donne un exemple de données parce que ton besoin n'est peut-être pas très clair.

    Si tu veux remplacer un caractère par un autre, utilise la fonction REPLACE.

  3. #3
    Membre du Club
    Homme Profil pro
    Dataminer
    Inscrit en
    Juillet 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Dataminer

    Informations forums :
    Inscription : Juillet 2008
    Messages : 54
    Points : 49
    Points
    49
    Par défaut
    Je voudrais en fait remplacer toutes mes valeurs vides de toutes mes colonnes par des points.

    Ma requête ne signifie pas que toutes mes colonnes contiennent la même valeur. Je peux avoir des valeurs vides et non vides dans une colonne, que des vides dans une autre, que des non vides dans une autre, etc. Et donc les vides je veux les remplacer par des points.

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 898
    Points : 53 136
    Points
    53 136
    Billets dans le blog
    6
    Par défaut
    On ne peut pas mettre un point dans une date, un nombre, un binaire....
    Donc cette requêtes serait d'une affligeant stupidité !
    SQL est un langage typé, et chaque colonne d'une table possède un type bine définit. Vous ne pourrez pas mettre un caractère là ou un nombre ou une date est attendue.
    Voila pourquoi votre requêtes est stupide !

    Commencez par apprendre le SQL qui est un vrai langage. Mon site web, comme mes bouquins peuvent vous y aider !

    A +

  5. #5
    Membre du Club
    Homme Profil pro
    Dataminer
    Inscrit en
    Juillet 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Dataminer

    Informations forums :
    Inscription : Juillet 2008
    Messages : 54
    Points : 49
    Points
    49
    Par défaut
    Mes champs sont tous du même format: varchar(255). Bien sûr si mes champs auraient été d'un autre format je ne me serais même pas posé la question du "comment faire"... d'où ma requête qui n'est pas si stupide que vous pouvez le penser car elle n'est pas destinée à plusieurs usages mais seulement à cette table-ci.

    Ceci dit, SQLpro, si vous n'avez pas de solutions à m'apporter, je me dispenserais bien de vos remarques.

  6. #6
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Même s'il exprime ça avec parfois un peu de virulence désagréable, ce que dit SQLPro n'est pas à prendre à la légère.

    Une table avec toutes ses colonnes (et non pas champ !) de même type et de même longueur, dont apparemment pas mal de valeurs sont vides, cela incipte à penser que votre modèle de données n'est peut-être pas optimum.

    Et si tu nous disais plus concrêtement de quoi il s'agit, quelle est la description exacte de la table et pourquoi tu veux faire ça ?

    On serait peut-être plus à même de t'aider et cela nous donnerait davantage envie de t'aider.

  7. #7
    Membre du Club
    Homme Profil pro
    Dataminer
    Inscrit en
    Juillet 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Dataminer

    Informations forums :
    Inscription : Juillet 2008
    Messages : 54
    Points : 49
    Points
    49
    Par défaut
    Il s'agit d'une table de description des articles d'un client. Celle-ci, après réception sous forme de dump SQL Server, est montée en Mysql pour être enrichie et nettoyée via Talend. Une fois la base prête, je la monte dans une table SAS avec SAS Data Integration Studio. Cette table article me pose un problème au niveau de l'import en m'indiquant un problème de non conformité aux contraintes d'intégrité. Les autres tables articles, identiques à celle qui me pose problème, s'importent sans problème. J'ai identifié le problème : les valeurs vides (valeurs = "") ne passent pas (je ne sais pas pourquoi, car sur les autres tables elles passent). Donc j'ai remplacé ces vides par un caractère et elle s'importe bien. Certes ce n'est pas résoudre le problème directement mais le contourner. Cependant je n'ai pas le temps en ce moment de trouver une autre solution.

    Ceci dit, si il n'est pas possible de faire ce genre de requête en SQL, je peux le faire via un autre moyen.

  8. #8
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par lecter85 Voir le message
    Il s'agit d'une table de description des articles d'un client. Celle-ci, après réception sous forme de dump SQL Server, est montée en Mysql pour être enrichie et nettoyée via Talend. Une fois la base prête, je la monte dans une table SAS avec SAS Data Integration Studio.
    Compliqué ton processus !
    J'ai du mal à me représenter l'utilité de la chose mais bon... c'est ton problème après tout.

    Cette table article me pose un problème au niveau de l'import en m'indiquant un problème de non conformité aux contraintes d'intégrité.
    Ca chez moi ça veut dire qu'il y a des valeurs de clés étrangères qui ne correspondent pas aux valeurs de la référence.

    Ceci dit, si il n'est pas possible de faire ce genre de requête en SQL, je peux le faire via un autre moyen.
    Et je ne vois pas comment faire en SQL, désolé.

  9. #9
    Membre du Club
    Homme Profil pro
    Dataminer
    Inscrit en
    Juillet 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Dataminer

    Informations forums :
    Inscription : Juillet 2008
    Messages : 54
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Compliqué ton processus !
    J'ai du mal à me représenter l'utilité de la chose mais bon... c'est ton problème après tout.
    Bah l'utilité de la chose c'est de rendre des bases inexploitables en bases exploitables (statistiquement parlant). Ces bases sont stockées et nettoyées automatiquement dans un DW en Mysql grâce à Talend (qui permet cette automatisation). Ensuite les bases de données sont envoyées vers SAS pour une exploitation statistique. Le transfert des bases vers SAS se fait avec SAS Data Integration Studio (car l'outil de Talend permettant de le faire n'est pas encore au point). C'est un processus bien spécifique qui paraît compliqué de premier abord mais qui en fait ne l'ai pas quand on l'a compris (et qui est logique au vu des outils disponibles et du résultats escompté dans ma société).

    Citation Envoyé par CinePhil Voir le message
    Ca chez moi ça veut dire qu'il y a des valeurs de clés étrangères qui ne correspondent pas aux valeurs de la référence.
    Bah pour moi aussi. Seulement, ce processus d'intégration via SAS est exactement identique pour les autres tables articles (qui sont elles-mêmes identique à la table qui pose problème comme je l'ai dit). Donc je ne comprend pas pourquoi, avec la même façon de procéder, la même structure de base (pour dire, c'est un modèle de table dans lequel j'importe les données, tout ça automatisé), on obtient un résultat différent

    J'aurai bien aimé connaître la solution en SQL (si elle existe), mais je crois que je vais me rabattre sur Talend qui le fait tout aussi bien (en Java lui).

  10. #10
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 898
    Points : 53 136
    Points
    53 136
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par lecter85 Voir le message
    J'aurai bien aimé connaître la solution en SQL (si elle existe), mais je crois que je vais me rabattre sur Talend qui le fait tout aussi bien (en Java lui).
    Il n'y en as, bien évidemment pas de toute faites, à part faire du SQL dynamique, ce qui revient au même si vous le faite avec un autre labgage.

    A +

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

Discussions similaires

  1. UPDATE sur tous les champs en même temps > saisie rapide ?
    Par sendme dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 30/01/2011, 11h52
  2. Comment updater tous les champs ?
    Par ZCode dans le forum Requêtes
    Réponses: 1
    Dernier message: 07/07/2010, 22h50
  3. Faire un UPDATE sur tous les champs ?
    Par pasc06 dans le forum Langage
    Réponses: 8
    Dernier message: 03/12/2008, 10h28
  4. oracle 9i - update de tous les champs
    Par the_ugly dans le forum Langage SQL
    Réponses: 3
    Dernier message: 26/03/2007, 14h54
  5. [SQL Server 2000] UPDATE sur tous les champs de ma table
    Par neeux dans le forum Langage SQL
    Réponses: 8
    Dernier message: 11/12/2006, 10h13

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