2009-08-19 7 views
0

J'ai un problème et je ne sais pas trop quoi rechercher pour trouver une solution.Afficher les données par ordre alphabétique

Description:

J'ai une table mysql avec le colums suivant "id", "name", "valeur", "parent" avec "id" comme clé primaire. "id" est un numéro d'auto-création, "name" est le nom de la catégorie, "value" est la valeur de la catégorie et "parent" est le nom parent (catégorie) pour cette ligne. Comment puis-je montrer cette table dans le bon ordre, signifie trié par leur nom de parent.

exemple:

sql:

id | nom | valeur | parent

1 | n1 | bla1 |

2 | n2 | bla2 | n3

3 | n3 | bla3 | n1

html:

n1 BLA1-

n3 bla3

BLA2 n 2

S'il vous plaît, aidez-moi avec une codesnippet ou un lien utile ... toute aide aprécié. Merci d'avance pour votre aide.

Répondre

0
SELECT * FROM tableName ORDER BY parent, name; 
1

Vous pouvez trier n'importe quelle table à l'aide de la clause ORDER BY dans SQL. Les tables n'ont pas d'ordre "correct"; ils sont commandés exclusivement par cette clause, que vous devez inclure dans toute requête que vous vous attendez à produire des résultats triés d'une manière particulière. Dans ce cas, vous écririez:

SELECT * FROM your_table ORDER BY parent; 

Comme un côté maintenant, vous obtiendrez des résultats plus fiables en mettant parent au id du parent, et non le nom, de sorte que si le nom change jamais vous ne rompra pas la relation parent/enfant. Vous pouvez ensuite utiliser un JOIN pour déterminer le nom du parent.

0
Select id,name,value,parent from MyTable order by parent asc 

triera dans l'ordre croissant

Select id,name,value,parent from MyTable order by parent desc 

triera dans l'ordre décroissant

Questions connexes