So wählen Sie verschiedene Zeilen aus, ohne eine Gruppierung nach Anweisung zu verwenden

8
%Vor%

Ich soll nur die verschiedenen Zeilen ausgeben, ohne die Gruppierung nach Anweisung zu verwenden. Ich kann group nicht verwenden, weil es mysql aufhängt. Also sollte es

zurückgeben %Vor%

Ich verwende DISTINCT für einen inneren Join. Dies funktioniert auch nicht:

%Vor%     
cool_cs 06.06.2012, 21:18
quelle

4 Antworten

11
%Vor%

Gemäß der mysql-Dokumentation spezifiziert DISTINCT das Entfernen doppelter Zeilen aus der Ergebnismenge ( Ссылка )

Ich habe ein Beispiel auf jsfiddle erstellt und es funktioniert IMHO

%Vor%

Fühlen Sie sich frei, an diesem SQLFiddle zu experimentieren.

    
Jerome WAGNER 06.06.2012, 21:19
quelle
9

Das könnte Sie schockieren, aber MySQL verwendet GROUP BY unter der Haube zu führe DISTINCT !!!

aus

Hier ist etwas, was Sie ausprobieren möchten

Wenn die Tabelle mytable heißt, machen Sie diese zwei Dinge:

Führe das zuerst aus

%Vor%

Zweitens, führen Sie diese Abfrage

aus %Vor%

GROUP BY funktioniert besser mit einem vorhandenen Index !!!

Hier ist Beispielcode, um zu beweisen, dass es funktioniert

%Vor%

Probieren Sie es aus !!!

    
RolandoMySQLDBA 06.06.2012 21:34
quelle
2

Wenn Sie (oder jemand anders) wirklich unterschiedliche Ergebnisse erhalten möchten, ohne die Anweisung DISTINCT oder GROUP BY zu verwenden, könnte dies der Weg sein:

%Vor%

Es ist jedoch eher eine kuriose Sache.

    
dpelisek 20.11.2015 16:15
quelle
1

Das DISTINCT-Keyword tut was Sie wollen. Das heißt, wenn der Name Ihrer Tabelle A ist, wird select distinct * from A den Trick machen.

Vgl. mysql-Handbuch: Ссылка

    
gexicide 06.06.2012 21:20
quelle

Tags und Links