Maison  >  Questions et réponses  >  le corps du texte

Méthode d'implémentation MySQL du tri ascendant multi-colonnes

<p>J'essaie d'exécuter cette requête par ordre croissant : </p> <pre class="brush:php;toolbar:false;">SELECT titre,project_index DE détail du projet OÙ index_projet ENTRE 1 ET 6 ORDER BY titre, project_index ASC;</pre> <p>J'ai besoin de deux colonnes par ordre croissant, mais la requête ci-dessus ne renvoie les résultats que pour une colonne dans l'ordre <code>ASC</code> </p>
P粉244730625P粉244730625394 Il y a quelques jours438

répondre à tous(1)je répondrai

  • P粉808697471

    P粉8086974712023-08-23 13:48:18

    Ascending est le tri par défaut pour la plupart (sinon la totalité) des SGBD, donc votre déclaration est un peu étrange à cet égard, mais de toute façon, vous pouvez spécifier le tri en ajoutant ASC ou DESC sur chaque colonne.

    Votre déclaration deviendra :

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

    Modifier

    Comme @Arvo et @Dems l'ont mentionné, vous triez actuellement d'abord par titre, puis par project_index si les titres sont les mêmes. Si vous souhaitez que project_index soit trié en premier, vous devez le mettre en premier dans la clause ORDER BY.

    Votre déclaration deviendra :

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

    Comme ASC est l'ordre de tri par défaut, vous pouvez les omettre :

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

    répondre
    0
  • Annulerrépondre