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

Langage SQL Discussion :

Select + Update + Regex


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 58
    Points : 23
    Points
    23
    Par défaut Select + Update + Regex
    Hi, je suis a la recherche d'une requete sql qui permettrait d'assigner un flag a un champs d'une valeur, en fonction du contenu d'un autre de ces champs..
    je m'explique,

    J'ai une table "compte" dans laquelle se trouve les champs `identifiant`, et `type`

    IDENTIFIANT TYPE
    bernard05fr

    le champ type est vide pour tous les identifiants, je souhaiterais le remplir par un 1 lorsque l'identifiant comporte "05", et 2 lorsqu'il est autre..

    est ce possible avec une regex?
    j'ai bien essayé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE `compte` SET `type`=1 WHERE `identifiant` REGEXP "[[:digit:]][[:digit:]]"=1
    mais ça ne fonctionne pas :/

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 500
    Points : 639
    Points
    639
    Par défaut
    Quel est ton SGBD ?
    Je pense que tu pourrais t'en sortir avec un LIKE.
    Des chercheurs qui cherchent, on en trouve, mais des chercheurs qui trouvent, on en cherche !

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 14
    Points : 16
    Points
    16
    Par défaut
    Le code suivant devrait fonctionner sur SQL Server :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    UPDATE Compte SET Type = 1 where identifiant like '%05%'
    UPDATE Compte SET Type = 2 where identifiant not like '%05%'
    +++

  4. #4
    Membre expérimenté Avatar de Yanika_bzh
    Homme Profil pro
    Responsable Applicatif et R&D
    Inscrit en
    Février 2006
    Messages
    1 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Responsable Applicatif et R&D
    Secteur : Finance

    Informations forums :
    Inscription : Février 2006
    Messages : 1 144
    Points : 1 738
    Points
    1 738
    Par défaut
    Solution en 1 requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    UPDATE Compte SET Type =
      CASE POSITION(identifiant,'05')
         WHEN 0 then 2 
         ELSE 1 END
    Bon courage
    Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac)

Discussions similaires

  1. [RegEx] Selection alphanumérique regex
    Par evil_Monkey dans le forum Langage
    Réponses: 7
    Dernier message: 18/01/2008, 16h14
  2. requete SELECT + UPDATE
    Par jexistetjrs dans le forum JDBC
    Réponses: 6
    Dernier message: 18/05/2007, 13h21
  3. count select update
    Par liofr59 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 10/04/2007, 23h55
  4. Réponses: 1
    Dernier message: 24/01/2007, 15h44
  5. comment faire un insert, + select + update dans la meme requete
    Par jam92400 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 27/06/2006, 18h33

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