12
votes

MYSQL Multiple colonne ASC commande

J'essaie d'exécuter cette requête en ordre ascendant: xxx

J'ai besoin de deux colonnes dans l'ordre croissant, mais la requête ci-dessus renvoie des résultats avec une seule colonne dans ASC ordre.


6 commentaires

Je ne reçois pas votre question complètement. Mais vous pouvez spécifier la commande pour chaque colonne comme commander par col1 ASC, Col2 ASC, COL3 Desc et ainsi de suite


J'ai essayé mais ça ne fonctionne pas pour moi .. ma requête est le titre, project_index Ces deux colonnes que je veux afficher l'ordre ASC, mais une seule colonne prenant effet ....


S'il vous plaît montrer votre sortie de requête.


Peut-être peut penser à l'ordre par projet_index, titre; ?


Dupliqué possible de PHP MySQL Commande par deux colonnes


Mr.User1135693, avez-vous trouvé une solution? Parce que je suis également confronté au même problème.


8 Réponses :



28
votes

ordre croissant est la défaillance forte> forte> pour la plupart (sinon tout) em> les DBMS de sorte que votre déclaration est donc une sorte de bizarre em> à cet égard, mais néanmoins, Vous pouvez spécifier une commande pour chaque colonne individuelle en ajoutant le spécificateur ASC code> ou desc code> à celui-ci.

Votre déclaration deviendrait P>

SELECT  title
        , project_index 
FROM    projectdetail 
WHERE   project_index BETWEEN 1 AND 6 
ORDER BY 
        project_index
        , title


6 commentaires

@ user1135693 - Pouvez-vous poster votre requête et vos résultats? Soit il y a quelque chose qui ne va pas avec la requête ou que vous avez trébuché sur un bug.


Mon requête Sélectionnez Titre, Project_Index de ProjectDetail où Project_index entre 1 et 6 Commande par titre ASC, Project_index ASC;


titre ASC Son prochain mais Index de projet Il doit montrer 1 à 6 mais il shwoing 6 à 1


@ user1135693 - et vos résultats (pertinents)?


Titre -> Apple, chat, poupée, Eleep Project_index -> 6,5,4,3,2,1 Résultats similaires Affichage, mais je veux project_index -> 1,2,3,4,5,6


@ user1135693 - Si Apple a plusieurs enregistrements avec différents index de projet, cela mettra en premier l'index le plus bas du projet. Si vous souhaitez que tous les enregistrements d'index du projet (1) d'abord, envisagent de nom, vous devez commander d'abord par Project_index ... ( Commander par prroject_index, titre )



0
votes

Vous essayez de trier les deux colonnes dans l'ordre croissant. Dans MySQL, vous pouvez utiliser plusieurs commandes dans une requête. Mais la préférence pour la commande par est très importante ici. Tout d'abord, obtenez le plus préférentiel et la prochaine préférence obtient une seconde préférence. de
Cela signifie que votre requête est xxx

où, commander par titre obtenu première préférence. Le MySQL commandera la colonne «Titre» dans l'ordre croissant au début et affichera le résultat. Alors seulement il commandera la colonne «Project_index». Donc, vous ne pouvez pas obtenir de réponse comme vous le souhaitez.


0 commentaires

0
votes

Essayez ceci:

SELECT title, project_index 
FROM projectdetail  
WHERE project_index BETWEEN 1 AND 6 
ORDER BY project_index, title;


0 commentaires

-1
votes

Vous pouvez essayer avec ci-dessous et vérifier -

SELECT title,project_index 
FROM projectdetail  
WHERE project_index BETWEEN 1 AND 6 
ORDER BY title, project_index


0 commentaires

-1
votes

Selon votre exigence / requête, je pense qu'il est impossible de commander plus de 2 colonnes dans la même table. Si vous souhaitez commander en fonction de la valeur, vous pouvez faire comme ça.

SELECT lat,lon, title, zip, city, state, region,cantone 
FROM company 
WHERE title != '' AND state IN(1,3,4,5,6,7,9,2) 
ORDER BY state=2,title asc


0 commentaires

3
votes

ordre par titre ASC, projet_index ASC; xxx

et vous pouvez ajouter plus de colonnes comme commander par col1 ASC, COL2 ASC, COL3 Desc;


0 commentaires

-1
votes

Utilisez xxx

au lieu de xxx

donnez la commande séparément pour les deux puis fonctionnera correctement.


0 commentaires