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 :

Union avec aléatoire


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Inscrit en
    Septembre 2004
    Messages
    387
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 387
    Points : 109
    Points
    109
    Par défaut Union avec aléatoire
    Bonjour à tous,

    voilà j'ai la table ci dessous pour lequel j'aimerai avoir 12 résultats composé de la facon suivante:

    - tous les résultats où Favoris = 1 order by ID
    +
    - les resultats où fresh = 1 order by ID
    +
    - les resultats où random = 1 dans un order aléatoires.

    _______________________
    |id | rss | favoris | fresh | random |
    ____________________________
    | 1 | a | 1 | 0 | 0 |
    | 2 | b | 1 | 0 | 0 |
    | 3 | c | 0 | 1 | 0 |
    | 4 | d | 0 | 1 | 0 |
    | 5 | e | 1 | 0 | 1 |
    | 6 | f | 1 | 0 | 1 |
    ...........................................
    |25 | x | 1 | 0 | 1 |


    à la base je voulais le faire en une requete mais sauf erreur de ma par ce n'est pas possible.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (SELECT * FROM ps_rsspersocontent ORDER by favoris Desc, fresh Desc, random RAND() limit 12
    J'ai donc pensé à un union

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    (SELECT * FROM ps_rsspersocontent where shop_id = 8 and cat_id = 25 and random = 0 ORDER By id asc)
      UNION
      (SELECT * FROM ps_rsspersocontent where shop_id = 8 and cat_id = 25 and random = 1 ORDER by RAND())
    ORDER by favoris Desc, fresh Desc limit 12
    Mais j'ai deux soucis cette requete me semble très lente, et impossible de faire une union en gardant le coté aleatoire>

    J'espère avoir été clair j'ai toujorus du mal à exprimé les requete que je souhaites.

  2. #2
    Membre régulier
    Inscrit en
    Septembre 2004
    Messages
    387
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 387
    Points : 109
    Points
    109
    Par défaut Et voici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT * 
    FROM 
      (SELECT * FROM ps_rsspersocontent where shop_id = 8 and cat_id = 25 and random = 0 ORDER By favoris Desc, fresh Desc, id asc) a
    UNION ALL
    SELECT * 
    FROM
      (SELECT * FROM ps_rsspersocontent where shop_id = 8 and cat_id = 25 and random = 1 ORDER by RAND()) b
    ORDER by favoris Desc, fresh Desc limit 12

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

Discussions similaires

  1. SELECT ORDER BY sur VARCHAR alphanumérique bizarre
    Par trent94 dans le forum Requêtes
    Réponses: 2
    Dernier message: 12/03/2013, 16h27
  2. xpath : faire un "select order by descending"
    Par QAYS dans le forum Langage
    Réponses: 1
    Dernier message: 15/09/2011, 20h30
  3. Réponses: 1
    Dernier message: 22/09/2010, 14h16
  4. [mysql - php] plusieurs tables pour un select ORDER BY
    Par sanosuke85 dans le forum Requêtes
    Réponses: 9
    Dernier message: 06/12/2005, 19h25
  5. SELECT ORDER BY sur 2 tables
    Par _Eric_ dans le forum Langage SQL
    Réponses: 5
    Dernier message: 21/07/2004, 12h17

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