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 par ordre d'entrée d'un tableau


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Par défaut select par ordre d'entrée d'un tableau
    Bonjour,
    j'ai un tableau qui contient des identifiants
    Array ( [0] => 0000007 [1] => 0000005 [2] => 0000001 )
    ensuite je fais la requète suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $query_shirt = 'SELECT * FROM tb_shirt WHERE id_shirt IN (\'' . implode("','", $tab_shirt) . '\')';
    ici il m'affiche par ORDER BY id_shirt ASC qui est par défaut
    le problème c'est que je voudrais qu'il affiche par ordre d'entrer du tableau
    0000007 0000005 0000001
    je ne veux pas faire ORDER BY id_shirt DESC car ceux que j'affiche c'est top vente des t-shirt donc la position dans le tableau dépend de la quantité.
    que dois-je faire exactement comme requète ?

    Cordialement
    akara

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 135
    Par défaut
    Je vous invite à prendre connaissance des Conseils à lire avant de poster sur ce forum
    Pour pouvoir commencer à donner un début de réponse, il nous faudrait connaitre la structure des tables en jeu ainsi qu'une ébauche de la requête que vous tentez d'effectuer.
    En précisant le SGBD que vous utilisez et sa version, les réponses proposées seront adaptées aux spécificités et limitations de celui-ci.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre éclairé Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Par défaut
    excusé moi mais je ne vois pas vraiment l'interêt ici (peut-être que je me trompe...)car
    ce que je demande simplement c'est : comment effectué l'affichage d'un select avec une clause WHERE "nom de colonne" IN ('valeur1', 'valeur2', ...)
    dans l'ordre d'entrée valeur 1 valeur2 car cette clause WHERE "nom de colonne" IN ('valeur1', 'valeur2', ...) affiche par 'ODER BY "nom de colonne" ' par défaut

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 135
    Par défaut
    La norme SQL prévoit que, lorsqu'aucune clause ORDER BY n'est précisée par une requête SELECT, les lignes retournées soient dans un ordre aléatoire. Certains SGBD ne respectent pas cette norme...
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Membre éclairé Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Par défaut
    ah ok merci je ne savais pas, je pensais que sql c'est du sql et tous les SGBD respectaient la norme sql !

    j'utilise Mysql (easyphp 1.8.0.1)

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 135
    Par défaut
    Dans ton cas, la solution la plus simple serait que tu utilises une table temporaire, par exemple TMP_CRITERE(ID_SHIRT, ORDRE).
    Tu charges dans cette table tes critères de sélection et l'ordre dans lequel tu veux lister les lignes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    DELETE FROM tmp_critere;
    INSERT INTO tmp_critere(id_shirt, ordre) VALUES ('0000007', 0);
    INSERT INTO tmp_critere(id_shirt, ordre) VALUES ('0000005', 1);
    INSERT INTO tmp_critere(id_shirt, ordre) VALUES ('0000001', 2);
    Puis tu fais une requête sur les données ainsi préparées :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT sht.*
    FROM    tb_shirt    AS sht
        INNER JOIN
            tmp_critere    AS tmp
            ON    tmp.id_shirt = sht.id_shirt
    ORDER BY tmp.ordre
    ;
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

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

Discussions similaires

  1. SELECT Distinct avec tri par ordre d'apparition
    Par Nono23 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 17/07/2012, 15h16
  2. Ordonner les élements d'un select par ordre alphabétique
    Par islyoung2 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 11/03/2010, 11h07
  3. [CR8] Groupes nommés par ordre spécifié
    Par PschittN dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 17/05/2004, 23h46
  4. Tri par ordre alphabétique
    Par orus8 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 17/04/2003, 19h27
  5. [] Tri d'un tableau par ordre alphabétique
    Par cafeine dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 17/09/2002, 08h43

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