J'essaie d'exécuter cette requête par ordre croissant:
SELECT title,project_index
FROM projectdetail
WHERE project_index BETWEEN 1 AND 6
ORDER BY title, project_index ASC;
J'ai besoin de deux colonnes dans l'ordre croissant, mais la requête ci-dessus renvoie les résultats avec une seule colonne dans ASC
.
L'ordre croissant est le valeur par défaut pour la plupart (si ce n'est tous) afin que votre déclaration soit une sorte de bizarre à cet égard, vous pouvez néanmoins spécifier un ordre pour chaque colonne en ajoutant le spécificateur ASC
ou DESC
.
Votre déclaration deviendrait alors
SELECT title
, project_index
FROM projectdetail
WHERE project_index BETWEEN 1 AND 6
ORDER BY
title ASC
, project_index ASC
Éditer
Comme mentionné par @Arvo & @Dems, vous triez actuellement premier sur title
et pour des titres identiques sur project_index
. Si vous souhaitez que votre project_index
soit trié en premier, vous devez d'abord le placer dans la clause ORDER BY
.
Votre déclaration devient alors
SELECT title
, project_index
FROM projectdetail
WHERE project_index BETWEEN 1 AND 6
ORDER BY
project_index ASC
, title ASC
et parce que ASC
est l'ordre de tri par défaut, vous pouvez les omettre complètement.
SELECT title
, project_index
FROM projectdetail
WHERE project_index BETWEEN 1 AND 6
ORDER BY
project_index
, title
Si vous utilisez mysql, vérifiez this out.
Comme on dit là-bas, vous pouvez utiliser SELECT * FROM t1 ORDER BY key_part1 DESC, key_part2 ASC;
ORDER BY titre ASC, index_projet ASC;
SELECT title,project_index
FROM projectdetail
WHERE project_index BETWEEN 1 AND 6
ORDER BY title ASC, project_index ASC;
ET vous pouvez ajouter plus de colonnes comme ORDER BY col1 ASC, col2 ASC, col3 DESC;
Essaye ça:
SELECT title, project_index
FROM projectdetail
WHERE project_index BETWEEN 1 AND 6
ORDER BY project_index, title;
Vous essayez de trier les deux colonnes par 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 important ici. Le premier obtient le plus de préférence et le suivant le second.
Cela signifie, votre requête est
SELECT title,project_index FROM projectdetail
WHERE project_index BETWEEN 1 AND 6 ORDER BY title, project_index ASC;
Où, l'ordre par titre a la première préférence. Le mysql ordonnera d'abord la colonne 'title' dans l'ordre croissant et affichera le résultat. Alors seulement il commandera la colonne 'project_index'. Donc, vous ne pouvez pas obtenir la réponse que vous voulez.