2010-08-31 5 views
2

je veux choisir à partir d'un titre peut être double si j'ai besoin titre distinct de leur »distincte dans une base MySQL

si j'utilise le code de Sachin table mysql

titre

, url de la table

puis Je trouve des lignes en double donc comment je peux obtenir l'information où le titre n'apparaît pas à nouveau comme le résultat. signifie aucun titre en double obtenir de la table dans une base MySQL

+1

pouvez-vous ajouter vos données spécifiques ici? Sinon, vous pouvez toujours utiliser select distinct * from

+1

Utilisez la clause DISTINCT dans votre requête Par exemple: Sélectionnez le nom de colonne DISTINCT de TableName. Si votre scénario n'est pas ce droit en avant, alors s'il vous plaît envoyer plus de détails – InSane

Répondre

5
SELECT DISTINCT * 
FROM mytable 

Mise à jour:

SELECT b.title, b.url 
FROM (
     SELECT DISTINCT title 
     FROM blah 
     WHERE cID = 1856 
     ) bd 
JOIN blah b 
ON  b.id = 
     (
     SELECT bi.id 
     FROM blah bi 
     WHERE bi.cID = 1856 
       AND bi.title = bd.title 
     ORDER BY 
       cid, title, url, id 
     LIMIT 1 
     ) 

Créer un index sur (cid, title, url, id) pour que cela fonctionne rapidement.

0
SELECT distinct a.title, a_url FROM blah WHERE a.cID = 1856 
+0

@zinka: édité la requête, veuillez vérifier –

+0

DISTINCT s'applique à l'ensemble de l'enregistrement, de sorte que vous requête peut renvoyer des doublons sur 'title'. Vous pouvez omettre la parenthèse, ils sont seulement source de confusion. – Quassnoi

+0

s'il vous plaît examiner ma question! – zinka

0

ici est le sollution

SELECT * FROM blah OÙ info.cID = 1856 GROUP BY titre

+0

Cela fonctionnera, bien qu'il ne garantisse pas quel 'url' sera retourné pour chaque' title'. – Quassnoi

+0

Corrigez-moi Si je me trompe, je pense que cela ne marchera pas à moins que vous ayez votre colonne "a_url" dans la clause group by, ce qui vous donnera à nouveau des entrées en double –

+1

@Sachin: http://dev.mysql.com/doc/ refman/5.0/fr/group-by-hidden-columns.html – Quassnoi

Questions connexes