Wie können einzigartige Werte aus den Daten einer Tabelle mit dql?

Ich habe eine Tabelle, in der gibt es eine Spalte, in der diverse Werte gespeichert werden.ich will abrufen eindeutige Werte aus der Tabelle mit dql.

         Doctrine_Query::create()
                    ->select('rec.school')
                    ->from('Records rec')                   
                    ->where("rec.city='$city' ")                                    
                    ->execute();        

Jetzt will ich nur eindeutige Werte. Kann mir jemand sagen, wie das geht...

Bearbeiten

Tisch Struktur:

CREATE TABLE IF NOT EXISTS `records` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`state` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
 `city` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
 `school` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=16334 ;

Dies ist die Abfrage, die ich benutze:

   Doctrine_Query::create()
          ->select('DISTINCT rec.city')
          ->from('Records rec')                   
          ->where("rec.state = '$state'")                                    
             // ->getSql();
           ->execute();                 

Generting Sql für diese gibt mir:

SELECT DISTINCT r.id AS r__id, r.city AS r__city FROM records r WHERE r.state = 'AR'

Überprüfen Sie nun die generierte sql::::
VERSCHIEDENE ist auf die 'id' - Spalte, wo, wie ich will, Unterscheidbar Stadt Spalte. Weiß jemand wie man dieses Problem beheben.

EDIT2

Id ist einzigartig, weil es eine automatische inkrementelle Wert.Ya ich habe einige echte Duplikate in Spalte city wie Delhi und Delhi. Richtig.. wenn ich Jetzt versuche zum abrufen von Daten aus es, ich bin immer Delhi zwei mal. Wie kann ich Abfrage wie diese:

  select DISTINCT rec.city where state="xyz";

Verursachen, das wird mir den richtigen Ausgang.

EDIT3:

Wer kann mir sagen, wie um herauszufinden, diese Abfrage..???

Versuchen Sie select('img.*') zu select('DISTINCT img.*')
DISTINCT gilt für alle Spalten, die Sie ausgewählt haben. IOW SELECT DISTINCT a, b, c gesehen werden kann, als SELECT DISTINCT(a, b, c). Ist das ein problem für Sie? Sie haben duplicities in rec.city? Sind Sie real duplicities? (Name der Stadt wäre eine schreckliche Schlüssel, Sie sind nicht eindeutig von einer Strecke.)
nur jemand überprüfen, der text unter EDIT2

InformationsquelleAutor Mohit Jain | 2010-01-27

Schreibe einen Kommentar