2013-10-10 5 views
0

J'essaie d'obtenir le résultat d'une table en utilisant la requête MySQL. Ce que je veux faire, c'est que j'essaie d'aller chercher 20 disques de la table. Dans ces 20 enregistrements, les 15 premiers enregistrements doivent être dans l'ordre croissant et les 5 derniers enregistrements doivent être dans l'ordre décroissant. J'essaie mais je n'arrive pas à le faire.Requête SQL pour obtenir le résultat fusionné

Je ne sais pas comment écrire des sous-requêtes.

Merci.

+1

Alors ... si votre table avait des nombres de '' 1' à 100' quelle serait votre résultat attendu? –

Répondre

0

Vous pouvez utiliser UNION ALL

(SELECT * 
    FROM table1 
ORDER BY column_name 
LIMIT 15) 
UNION ALL 
(SELECT * 
    FROM table1 
ORDER BY column_name DESC 
LIMIT 5) 

Voici SQLFiddle démo

+0

Cela ne fonctionnera pas, b/c dernière requête va retourner premier résultat 5 dans l'ordre décroissant, alors changez-le en fonction de cela, Limite 15,20 – developerCK

+0

Hey peterm .. Merci d'avoir répondu si vite. Mais cela ne fonctionne pas .. Je reçois cette erreur "Utilisation incorrecte de UNION et ORDER BY". Et ma requête est "SELECT * FROM' blogaliys_options' ORDER BY 'option_id' LIMIT 15 UNION TOUS SELECT * FROM' blogaliys_options' ORDER BY 'option_id' DESC LIMIT 5" –

+0

@Yunus Vous avez besoin de parenthèses. Voir mise à jour de la réponse et sqlfiddle demo – peterm

Questions connexes