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 :

Un champ comme tableau pour la condition 'IN'


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2011
    Messages : 2
    Par défaut Un champ comme tableau pour la condition 'IN'
    Bonsoir a tous,


    J'ai un petit soucie au niveau d'une requête si quelqu'un qui pourrait m'aider a trouver une solution je serai vraiment reconnaissant, et merci d'avance.

    Je vous explique mon cas,

    Parmi les champs de ma table, le champ: params_details(VARCHAR) ou je stock des 'id' séparés par une virgule par exemple: '2,10,16,5'
    Mon problème, c'est que je dois faire une requête de sélection avec un id en paramètre pour retourner les enregistrement dans ma table ou je teste ce paramètre s'il existe dans le champs 'params_details', comme ce qu'on fait avec 'IN'

    Voici ce que j'ai testé mais rien ça marche pas

    ici le paramètre a tester est 10
    SELECT * FROM Mytable WHERE 10 in params_details

    j'ai testé aussi
    SELECT * FROM Mytable WHERE 10 in (params_details)

    et
    SELECT * FROM Mytable WHERE 10 in concat('(',params_details,')')

    Mais rien, la seul qui ne retourne pas d'erreur et la deuxième requete [SELECT * FROM Mytable WHERE 10 in (params_details)], dans cette exemple celle-ci marchera que si je met en paramètre le premier nombre du champ params_details, si je met '2 in (params_details)' ou params_details est '2,10,16,5' alors ça marche sinn si je met 10 ou 16 ou 5 comme paramètre ça marche pas


    Merci d'avance.

  2. #2
    Membre très actif
    Profil pro
    Administrateur
    Inscrit en
    Mai 2008
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 237
    Par défaut
    params_details ou '2,10,16,5' sont une chaîne de caractères et ne peuvent être interprétés comme une liste de valeurs

    10 IN ('2,10,16,5') est différent de 10 IN (2, 10, 16, 5)

  3. #3
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    soit tu construis dynamiquement ta requête dans le langage appelant (php par exemple)

    tu utilises une requête préparée dans une procédure stockée du genre:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    -- création de la procédure
    delimiter $$
    drop procedure if exists test$$
    create procedure test(in param text)
    begin
      set @a=concat('SELECT * FROM Mytable WHERE 10 in(',param,')');
      prepare exe from @a;
      execute exe;
     deallocate prepare exe;
    end$$
    delimiter ;
     
    -- appel de la procédure
    call test('1,2,5,10');
    à toi d'adapter à ton besoin

Discussions similaires

  1. [AC-2010] Sous-formulaire style tableau : Champ de valeur 0 sous condition
    Par Goose- dans le forum Modélisation
    Réponses: 1
    Dernier message: 22/04/2012, 10h45
  2. [MCD] Modélisation table ayant pour champ un tableau
    Par cyreel dans le forum Schéma
    Réponses: 6
    Dernier message: 15/06/2009, 23h08
  3. Réponses: 5
    Dernier message: 30/09/2008, 03h14
  4. Fonction affich pour remplir des champs de tableau
    Par bc.dumon dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 17/04/2008, 08h56
  5. Réponses: 2
    Dernier message: 03/12/2006, 12h37

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