2010-02-08 4 views
1

J'ai une structure de table comme:comment afficher un champ particulier d'abord et le reste suivant dans MYSQL

ID, Test_ID, Verdict, PATH, Last_Status, 
Present_status, Remote_location,TestCase 

Je veux que le résultat soit affiché en commençant par TestCase Mais je ne veux pas parler de tous les fileds particulièrement. Y at-il quelque chose comme

select TestCase,* from Table order by TestCase` ? 

Fondamentalement, le résultat doit être affiché sous la forme

Testcase, ID, Test_ID, Verdictm PATH, 
Last_Status, Present_statusmRemote_location 

Si je tente le dessus de certains, il ne fonctionne pas dans MYSQL. Y a-t-il une commande pour réaliser ce dont j'ai besoin?

Merci.

+0

sélectionnez TestCase, Table. * De Table order by TestCase' affichera TestCase deux fois. Il est impossible de ne pas afficher un champ particulier si vous utilisez *. – a1ex07

Répondre

2

vous devez énumérer tous les champs que vous voulez dans l'ordre où vous les voulez. Il est soit utiliser * ou liste ce que vous voulez, et juste pour l'avenir en utilisant * est une mauvaise pratique.

3

Pas que je sache. Néanmoins, il est recommandé d'éviter d'utiliser SELECT * FROM tableName dans la mesure du possible.

Si votre liste de colonnes change, des requêtes dans votre code peuvent affecter des valeurs aux champs incorrects.

1

oui, liste que les colonnes que vous voulez d'abord explicitement dans la clause Select:

Select Testcase, t.* From TableName 

Mais l'astérisque causeront la colonne testcase à sortir, peu importe ce que, vous obtiendrez deux fois. Pour éviter les noms de colonne redondants ambigus, vous devrez alias le premier:

Select Testcase as FirsttestCase, t.* From TableName 
+0

Je suppose qu'il ne sert à rien d'afficher deux fois le même champ à l'utilisateur, ce qui l'agace. – JPro

+0

Ensuite, je vous suggère de lister explicitement toutes les colonnes de votre clause Select, dans l'ordre où vous les préférez. –

+0

c'est un mauvais conseil d'utiliser le * pour à peu près tout sauf requêtes ad hoc pour le débogage –