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 :

Un select complexe


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 500
    Billets dans le blog
    1
    Par défaut Un select complexe
    Bonsoir,

    j'ai une table qui a la structure suivante :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CREATE TABLE IF NOT EXISTS `patient` (
      `id_patient` mediumint(8) NOT NULL AUTO_INCREMENT,
      `nom` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
      `prenom` varchar(20) COLLATE utf8_unicode_ci DEFAULT NULL,
      `date_naissance` date DEFAULT NULL,
      `num_secu` bigint(15) DEFAULT NULL,
      PRIMARY KEY (`id_patient`)
    et je voudrais faire une requête qui sélectionne l'id_patient tel que `prenom` `nom` `num_secu`(donc les 3 champs concaténés avec un espace pour séparateur) soit égal à une chaîne de caractère donnée.
    La requête suivante : SELECT id_patient FROM `patient` WHERE prenom nom num_secu="string" génère une erreur SQL ; y a t-il moyen de faire cela ?

  2. #2
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 500
    Billets dans le blog
    1
    Par défaut
    Bon, comme je souhaitais résoudre ça et qu'on ne m'a proposé une requête SQL, je l'ai résolu avec un explode du PHP :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $patient_decoupee=explode(" ",$_SESSION['patient_sel']);
    $sql="SELECT id_patient FROM `patient` where prenom=:id_prenom AND nom=:id_nom AND num_secu=:num_secu";
    $prep = $connexion->prepare($sql);
    //Associer des valeurs aux place holders
    $prep->bindValue(':id_prenom', $patient_decoupee[0], PDO::PARAM_STR);
    $prep->bindValue(':id_nom', $patient_decoupee[1], PDO::PARAM_STR);
    $prep->bindValue(':num_secu', $patient_decoupee[2], PDO::PARAM_INT);
    $prep->execute();













    p

  3. #3
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 544
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 544
    Par défaut
    Bonjour,
    L'opérateur de concaténation en SQL est ||.
    Maintenant je serai curieux de savoir ce qui est plus rapide: tester la valeur de 2 chaines et un entier, ou concaténer les trois et comparer le résultat à une chaine.
    Naturellement je prendrai la première solution, car la deuxième risque d'empêcher le moteur d'utiliser un index.

    Tatayo.

  4. #4
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 500
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 500
    Billets dans le blog
    1
    Par défaut
    Merci de la réponse, mais maintenant que ça marche, je passe au souci suivant...

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

Discussions similaires

  1. SELECT complexe (pour moi)
    Par Zorglu dans le forum Requêtes
    Réponses: 6
    Dernier message: 11/01/2007, 18h11
  2. select complexe à formuler
    Par gg2vig dans le forum Oracle
    Réponses: 5
    Dernier message: 18/12/2006, 16h18
  3. [Access] requête de sélection complexe
    Par Nycos62 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 23/06/2006, 10h35
  4. [oracle 9i]select complex
    Par jaoued dans le forum Oracle
    Réponses: 1
    Dernier message: 14/06/2006, 11h09
  5. [oracle 9i]update à partir d'une selection complexe
    Par Requin15 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 13/06/2006, 10h18

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