Requête mysql

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par Tomybe, 11 Mai 2012.

  1. Tomybe
    Tomybe WRInaute discret
    Inscrit:
    1 Février 2012
    Messages:
    187
    J'aime reçus:
    0
    Salut,

    Comment vous feriez pour prendre à coup sur 10 ID's d'une table, sachant qu'une priorité est donné à une partie du where

    J'en suis là :
    SELECT ID FROM TABLE WHERE ((DossierID = 2 AND FileID = 6) OR (FileID = 6)) LIMIT 10

    En gros je prend tous les ID Si dossierID = 2 et FileID = 6 (Le probleme c'est que parfois il n'y en a que 5 par exemple) et compléter la liste par FileID=6 (donc élargir pour complèter).

    Une idée? (j'sais pas si j'ai été clair.)
     
  2. UsagiYojimbo
    UsagiYojimbo WRInaute accro
    Inscrit:
    23 Novembre 2005
    Messages:
    12 003
    J'aime reçus:
    128
    Tu es sur de tes parenthèses ? Ce ne serait pas plutôt

    SELECT ID FROM TABLE WHERE DossierID = 2 AND (FileID = 6 OR FileID = 6) LIMIT 0,10
     
  3. Tomybe
    Tomybe WRInaute discret
    Inscrit:
    1 Février 2012
    Messages:
    187
    J'aime reçus:
    0
    ouép pas mieux
     
  4. Protée
    Protée WRInaute occasionnel
    Inscrit:
    27 Décembre 2006
    Messages:
    301
    J'aime reçus:
    0
    Curieux, non ?
    Je dirais même mieux : FileID = 6 :)
     
  5. Blount
    Blount WRInaute impliqué
    Inscrit:
    18 Novembre 2010
    Messages:
    701
    J'aime reçus:
    0
    J'ai pas tout bien compris, mais est-ce que ceci te conviendrait ?

    Code:
    SELECT ID FROM TABLE WHERE FileID = 6
    ORDER By FIELD(DossierID, 2) ASC
    LIMIT 10
    
     
  6. Tomybe
    Tomybe WRInaute discret
    Inscrit:
    1 Février 2012
    Messages:
    187
    J'aime reçus:
    0
    pff order by field :) ! Merci beaucoup ça fonctionne.
     
  7. zeb
    zeb WRInaute accro
    Inscrit:
    5 Décembre 2004
    Messages:
    12 021
    J'aime reçus:
    1
    Bon alors ce qui passe chez moi c'est de sélectionner les champs désiré dans la table et de restreindre avec un limit.
    Pour que les X premières réponses correspondent a un critère donné et que ce soit complété par total - X suivant un autre critère il faut faire des sous requêtes qui seront évaluée une a une. Si en plus on demande un résultat trié ASC ou DESC ça fonctionne (tant qu'il y a que 2 critères, la priorité sera donc donnée a l'une ou l'autre rubrique)

    par exemple j'ai une table qui contient des id (clé primaire), des id de rubriques (idrub) et des titres (entre autre)

    Si je veux tous les id et titre de la rubrique 1 (il y en a 18) et qu'il me faut en fait 20 résultats et que je souhait compléter avec les titres de la rubrique 43 (4 titres dedans) donc avoir les 18 de rub 1 et 2 de rub 43 je fais ça:

    SELECT id,id_rub,titre FROM `table`
    WHERE
    id IN (select id from `table` where id_rub=1) OR
    id IN (select id from `table` where id_rub=43)
    ORDER BY id_rub ASC
    LIMIT 0, 20

    Attention il est conseillé d'avoir de bons index sur id car sinon ça va chauffer sur des grosses tables ...
     
  8. boby55
    boby55 WRInaute occasionnel
    Inscrit:
    2 Avril 2008
    Messages:
    354
    J'aime reçus:
    0
    Je ne suis pas certain d'avoir saisie le problème mais bon je me lance :roll: :

    Code:
    SELECT ID FROM TABLE WHERE FileID = 6 AND (DossierID = 2 OR dossierId IS NULL) order by DossierID ASC LIMIT 10
    
    On prend tous ceux qui ont :fileId 6 ET ( dossierId 2 OU aucun dossierID)
     
  9. Tomybe
    Tomybe WRInaute discret
    Inscrit:
    1 Février 2012
    Messages:
    187
    J'aime reçus:
    0
    Effectivement t'a plutôt intérêt à avoir de bons index! lol
     
  10. Tomybe
    Tomybe WRInaute discret
    Inscrit:
    1 Février 2012
    Messages:
    187
    J'aime reçus:
    0
    J'avais opté pour une solution similaire mais qui ne fonctionné pas! Et pourtant j'en suis pas à ma première requête SQL. J'creuserai un peu
     
  11. Blount
    Blount WRInaute impliqué
    Inscrit:
    18 Novembre 2010
    Messages:
    701
    J'aime reçus:
    0
    Oui mais le problème de base ne mentionne pas que quand FileID = 6 alors DossierID doit être soit égale à 2 soit NULL. Il indique qu'il doit prendre en priorité FileID = 6 et DossierID = 2 et que s'il y a moins de résultat, continuer à sélectionner les lignes quand FileID = 6 et peu importe la valeur de DossierID (NULL, 3, 5, etc.).

    Ma requête donner plus haut devrait répondre à ta problématique.
     
  12. Tomybe
    Tomybe WRInaute discret
    Inscrit:
    1 Février 2012
    Messages:
    187
    J'aime reçus:
    0
    Je confirme. Elle etait tordu celle là. Merci encore.
     
Chargement...
Similar Threads - Requête mysql Forum Date
encodage texte sur requete mysql Demandes d'avis et de conseils sur vos sites 21 Octobre 2020
Requête MySql imbriquée Développement d'un site Web ou d'une appli mobile 8 Octobre 2020
Requête Mysql avec des string Développement d'un site Web ou d'une appli mobile 6 Février 2018
Requete mysql Développement d'un site Web ou d'une appli mobile 30 Mai 2017
Problème requête mysql Développement d'un site Web ou d'une appli mobile 1 Mars 2017
[php/mysql] Eviter de faire 20 requêtes pour un affichage Développement d'un site Web ou d'une appli mobile 19 Janvier 2016
requete Mysql et classement des résultats Administration d'un site Web 1 Novembre 2015
Mysql requête imbriquée Développement d'un site Web ou d'une appli mobile 1 Octobre 2015
[MySQL] Requête SELECT et INSERT entre 3 tables liées+Aide Développement d'un site Web ou d'une appli mobile 30 Avril 2014
Question pour une requête MYSQL Développement d'un site Web ou d'une appli mobile 29 Mai 2013
Réunir 2 requêtes MySql Développement d'un site Web ou d'une appli mobile 22 Mai 2013
MySQL Help requête² Développement d'un site Web ou d'une appli mobile 12 Avril 2013
MySQL help requete Développement d'un site Web ou d'une appli mobile 6 Mars 2013
Une requête mysql count Développement d'un site Web ou d'une appli mobile 25 Juillet 2012
[MySQL] sélectionner la dernière note pour chaque élève en une seule requète ? Développement d'un site Web ou d'une appli mobile 12 Avril 2012
[Mysql] Requête PDO avec variable php Développement d'un site Web ou d'une appli mobile 16 Février 2012
[Mysql] Requête PDO aléatoire Développement d'un site Web ou d'une appli mobile 7 Février 2012
Temps d'éxécution requête mysql vraiment contre intuitif Développement d'un site Web ou d'une appli mobile 9 Novembre 2011
Requête MySQL besoin d'aide Développement d'un site Web ou d'une appli mobile 15 Septembre 2011
Requete MySQL et order Développement d'un site Web ou d'une appli mobile 19 Août 2011