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 :

select, from, where


Sujet :

Requêtes MySQL

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 7
    Points : 2
    Points
    2
    Par défaut select, from, where
    bjour

    un champ "dept" de ma base "X" est rempli avec : 1, 2, 3, 22, 201

    Quelle requete pour n'afficher que les enregistrement dont le champ dept contient 2
    SELECT*
    FROM X
    WHERE dept = 2 marche pas, WHERE dept LIKE 2, non plus....

    Y a t'il une requete possible ou doit je changer le les données du champ "dept"

    merci d'avance de votre aide

  2. #2
    Membre confirmé Avatar de amika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 498
    Points : 464
    Points
    464
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT*
    FROM X
    WHERE dept LIKE '%2%'

    _____________________
    Il n'y a pas de choses urgentes, il n'y a que des choses en retard

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    merci de la reponse, j'ai aussi essayé les % avant et après mais si je demande
    %22% pour afficher que si il y a 22 ca marche plus....

  4. #4
    Membre confirmé Avatar de amika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2004
    Messages : 498
    Points : 464
    Points
    464
    Par défaut
    tu as bien mit les % entre des cotes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM X WHERE dept LIKE '%22%'

    _____________________
    Il n'y a pas de choses urgentes, il n'y a que des choses en retard

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    ben ouais ca marche si on mets juste un chiffre %2%, %3%... mais dès qu'il y a un nombre %22% ou %201% rien a faire, ca merdois ...
    n.b : mon champs est en text

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 194
    Points : 220
    Points
    220
    Par défaut
    explique mieux ton problème.
    si tu veux afficher les enregistrements dont le champs dept est égale à 2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT *
    FROM X
    WHERE dept = '2'
    ce code devrait marcher sans problème.
    pourquoi tu veux mettre un nombre?

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    avec = cela ne marche qu'avec le premier chiffre inscrit dans mon champs dept soit 1 si le champs contient 1, 2, 3, ...

    ce que je desire faire c'est afficher des n° de departement limitrophe a un departement donnée soit pour le 33 par exemple remplir mon champs dept avec 17, 24, 40, 47...

    mais je n'arrive pas afficher après les enregistrement où le 24 apparait dans le champs dept

    peut etre ne faut il pas remplir le champs dept comme je le fais??

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 194
    Points : 220
    Points
    220
    Par défaut
    je recapitule:
    si j'ai bien compris tu as comme donnee:
    - 1 numero de département: D
    dans la table de ta base, tu as:
    - un champs representant un departement: DEPT

    tu veux:
    - afficher tous les enregistrements dont le departement est limitrophe

    si j'ai juste et seulement avec ces informations, c'est impossible.

    ce qu'il faut faire, c'est créer une table ayant 2 champs:
    dep_1, dep_2
    33, 17
    33, 24
    33, 47
    ...

    et faire une jointure avec cette table


    ou alors dans votre champs texte correspondant au departement, tu mets tous les departement limitrophe séparé par une virgule puis une requete du genre "dept like '%33%'" devrait fonctionner


    enfin bon j'ai peut etre tout faux

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    je voudrais eviter d'avoir plusieurs table et avec dept like '%33%' ca plante.
    la separation des nombre avec avec une virgule il a pas l'air d'apprecier, ca plante dès qu'on lui demande un nombre et pas un chiffre

  10. #10
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Points : 11 741
    Points
    11 741
    Par défaut
    Si tu veux exploiter une liste séparée par virgules, voici trois possibilités (qui doivent fonctionner toutes les trois, à des vitesses inégalement lentes) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    -- avec une expression régulière
    WHERE dept REGEXP '(^|, )2(,|$)' 
     
    -- avec OR et LIKE (très bourrin)
    WHERE dept = '2' -- tout seul
       OR dept LIKE '2, %' -- en début de liste
       OR dept LIKE '%, 2' -- en fin de liste
       OR dept LIKE '%, 2,%' -- en milieu de liste
     
    -- même principe, mais en plus subtil
    WHERE CONCAT(', ', dept, ', ') LIKE '%, 2,%'
    Ceci dit, sur le fond, Coca25 a raison, tu devrais améliorer ta modélisation, tes requêtes seront plus simples et plus rapides.

    Antoun, spécialiste en requêtes tordues sur des bases sales
    Antoun
    Expert Tableau, Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    ca marche....

    merci bien

  12. #12
    Nouveau membre du Club
    Inscrit en
    Mai 2005
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 28
    Points : 26
    Points
    26
    Par défaut
    Salut,

    comment as tu fait pour récupérer la liste de tous les départements limitrophes les uns des autres ?

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 7
    Points : 2
    Points
    2
    Par défaut
    Salut ruddy

    Me les suis cognés un par un....

    bon courage

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

Discussions similaires

  1. [COUNT] select ... from ... where count !
    Par tmcgrady dans le forum Langage SQL
    Réponses: 5
    Dernier message: 30/11/2007, 17h29
  2. limite de select * from where titi in (,) limite à 1000 char
    Par chimiotheque dans le forum Langage SQL
    Réponses: 4
    Dernier message: 18/01/2007, 17h35
  3. probleme avec SELECT..FROM..WHERE
    Par VBBBA dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 08/09/2006, 15h58
  4. Pb de syntaxe sql : Sélection SELECT FROM WHERE vide
    Par oceanediana dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 31/07/2006, 15h54
  5. [hibernate][spring]requete select from where IN
    Par whilecoyote dans le forum Hibernate
    Réponses: 1
    Dernier message: 07/04/2006, 09h06

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