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

PHP & Base de données Discussion :

Plusieurs sélections dans un champ [SQL-Server]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Homme Profil pro
    Paris 12
    Inscrit en
    Juin 2019
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Paris 12
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2019
    Messages : 33
    Par défaut Plusieurs sélections dans un champ
    Bonjour à tous,

    Je débute dans les requêtes SQL
    J''ai une question pour ceux qui maitrisent

    J'ai une base de donnée (FCOMPTA), qui disposent de plusieurs champs

    Je souhaiterais sélectionner dans le champ AGENCE plusieurs agences (9214 /9215 / 9241)

    J'ai tenté un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select * from FCOMPTA
    where Agence ='9214' 
    and Agence ='9215' 
    and Agence ='92141'
    Mais sans succès

    Des idées ?
    Merci à la communauté

    Cordialement

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 313
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 313
    Billets dans le blog
    17
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select * from FCOMPTA
    where Agence ='9214'
    and Agence ='9215'
    and Agence ='92141'
    Ici tu cherches les lignes dont Agence vaut à la fois 9214, 9215, etc. Bien sûr, c'est impossible

    Il faut faire :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT ALL tes_colonnes
    FROM FCOMPTA
    WHERE Agence = '9214' OR Agence = '9215' OR Agence = '92141'

    Qu'on peut aussi écrire avec IN :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT ALL tes_colonnes
    FROM FCOMPTA
    WHERE Agence IN ('9214', '9215', '92141')

  3. #3
    Membre averti
    Homme Profil pro
    Paris 12
    Inscrit en
    Juin 2019
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Paris 12
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2019
    Messages : 33
    Par défaut
    Merci Séb

    Rapide et efficace, et de plus j'ai capté la logique

    Excellente journée à toi.

  4. #4
    Expert confirmé Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 982
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 982
    Par défaut
    Petite précision sur le jargon:
    Citation Envoyé par Dynaz Voir le message
    J'ai une base de donnée table (FCOMPTA), qui disposent de plusieurs champs colonnes

  5. #5
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 564
    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 : 10 564
    Billets dans le blog
    10
    Par défaut
    Ou encore, une approche plus fonctionnelle, si on sait qu'on veut les éléments des agences d'Agen, Cholet et Mulhouse, plutôt que de "coder en dur" les identifiants d'agence, on ira rechercher ceux-ci dans la table des agences grâce à une jointure.
    Comme il ne faut JAMAIS coder select * dans un traitement, on citera les colonnes dont on a besoin in extenso

    Ce qui donne une requête ressemblant à ceci :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    select FC.Colonne1  -- JAMAIS de select *
         , FC.Colonne2
         , [...]
         , FC.idagence
         , AG.libelle
    from FCOMPTA as FC
    inner join AGENCE as AG
       on AG.idagence = FC.idagence
      and AG.libelle in ('Agen', 'Cholet', 'Mulhouse')

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

Discussions similaires

  1. Plusieurs valeurs dans un champ
    Par Freyskeyd dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/12/2007, 21h03
  2. [Dates] Plusieurs variables dans un champ?
    Par covin85 dans le forum Langage
    Réponses: 10
    Dernier message: 11/02/2007, 19h27
  3. récupérer plusieurs valeurs dans un champ hidden
    Par karimphp dans le forum Langage
    Réponses: 3
    Dernier message: 07/12/2006, 17h13
  4. plusieurs espaces dans un champ texte
    Par startout dans le forum Langage
    Réponses: 5
    Dernier message: 13/10/2006, 12h44
  5. [MySQL] Plusieurs entrées dans un champ ?
    Par dragon bleu dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 24/10/2005, 19h42

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