2011-08-20 5 views
1

J'ai mysql table tmp avec des colonnes pid, ville, état, pays. J'écris des requêtes afin que je puisse trouver la ville, l'état ou le pays correspondant, et le pid est le champ qui m'aide à charger une autre table. Le fait est qu'il y a toujours deux lignes avec le même pid, et parfois (quand O WH TROUVE l'état de la ville ou le pays correspondant dans les deux), j'affiche les données de la table additionnelle deux fois inutilement. donc je dois choisir quelque chose comme:Sélectionnez * distinct une colonne

SELECT * FROM tmp DISTINCT pid WHERE city='test' 

Je ne sais pas comment la solution de recherche (je cherchai ici sur stackoverflow, mais pas de chance). En outre, il y aura beaucoup de recherche dans cette table, donc s'il y a plusieurs solutions, je préférerais une solution plus rapide. Merci

+0

Je me demande que vous avez obtenu rien sur Google pour "mysql select * une colonne distincte"? – Abhay

Répondre

0

essayer cette

SELECT DISTINCT pid,field1,field2 FROM tmp WHERE city='test' 
+0

Je suppose que c'est une solution, est-ce beaucoup plus lent que SELECT * FROM tmp WHERE city = 'test'? – Milos911

+0

cela fonctionnera comme sélectionnant les dossiers avec le pid distinct, et choisira d'autres champs aussi bien que vous l'avez mentionné dans le commentaire ci-dessous .. :) codage heureux – mithunsatheesh

4

S'il vous plaît essayez l'instruction SQL suivante:

SELECT DISTINCT pid FROM tmp WHERE city='test' 
+0

Oh mec je me sens si stupide maintenant :) – Milos911

+0

Oublié que saisit entre commente :). Cela fonctionnera, mais je voudrais s'il y a un moyen de sélectionner toutes les colonnes? Mais la seule valeur distincte devrait être pid – Milos911

+0

@ Milos911: Voulez-vous toutes les colonnes, mais seulement les lignes ayant DISTINCT pid? Donc, si deux (ou plusieurs) lignes ont le même 'pid', lequel devrait être retourné? –

-1
$keyword="0"; 
$query = "SELECT DISTINCT titel,id FROM xyz ORDER BY titel ASC "; 
$result = mysql_query($query); 
while ($row = mysql_fetch_array($result)) 
{ 
    if($keyword!==$row["titel"]) 
    { 
     $keyword=$row["titel"]; 
     echo $keyword; 
    } 
} 
+0

Bienvenue au débordement de pile. Lorsque vous publiez un extrait de code dans votre réponse, veuillez également ajouter une explication sur pourquoi et comment votre réponse résout la question OP. –