php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 08.12.2004, 20:35  
Gast
 
Beiträge: n/a
Standard Distinct ?

Die ORDER BY clauses wird gar nicht beachtet, wieso nicht? Kann ich das sonst anders regeln?

Code:
mysql_query("SELECT DISTINCT parent FROM ".$forum_db." WHERE type='3' ORDER BY timestamp DESC LIMIT 10");
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 08.12.2004, 21:43  
Gast
 
Beiträge: n/a
Standard

Ist das feld timestamp auch vom typ timestamp?
  Mit Zitat antworten
Alt 08.12.2004, 23:04  
Erfahrener Benutzer
 
Registriert seit: 14.01.2004
Beiträge: 2.543
fantast
fantast eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von Du-weisst-schon-wer
Ist das feld timestamp auch vom typ timestamp?
is doch wurscht. wenns ne zahl is muesste er sie auch ordnen. aber unabhaengig davon is timestamp nen reserviertes wort. spalte umbenennen...
__________________
Was ist validität?
fantast ist offline   Mit Zitat antworten
Alt 08.12.2004, 23:25  
Erfahrener Benutzer
 
Registriert seit: 29.10.2004
Beiträge: 1.781
derHund
Standard

Zitat:
aber unabhaengig davon is timestamp nen reserviertes wort. spalte umbenennen...
sollte man denken, aber ... da das wohl schon ettliche menschen ungünstigerweise verwendet haben ...
http://dev.mysql.com/doc/mysql/en/Reserved_words.html
__________________
derHund ist offline   Mit Zitat antworten
Alt 08.12.2004, 23:46  
Erfahrener Benutzer
 
Registriert seit: 14.01.2004
Beiträge: 2.543
fantast
fantast eine Nachricht über ICQ schicken
Standard

weiss ich. denk trotzdem, dass es nich so heissen sollte. wozu gibts den standard wenn man sich doch nich dran haelt *G
__________________
Was ist validität?
fantast ist offline   Mit Zitat antworten
Alt 09.12.2004, 00:55  
Gast
 
Beiträge: n/a
Standard Re: DISTINCT ?

Zitat:
Zitat von www.chrisdorf.de
Die ORDER BY clauses wird gar nicht beachtet, wieso nicht? Kann ich das sonst anders regeln?

Code:
mysql_query("SELECT DISTINCT parent FROM ".$forum_db." WHERE type='3' ORDER BY timestamp DESC LIMIT 10");
mit DISTINCT fasst du mehrere Datensätze bei denen 'parent' identisch ist zu einem zusammen. Der Wert für 'timestamp' ist aber wahrscheinlich immer unterschiedlich. MySQL kann also gar nicht nach 'timestamp' sortieren, da es ja für jeden 'parent'-Wert mehrere timestamps gibt!

Das Ganze hängt wahrscheinlich damit zusammen, wie MySQL die Anfrage abarbeitet. Ich hatte dasselbe Problem, habe aber bis jetzt leider keine Lösung gefunden... Hat einer 'ne Idee??
  Mit Zitat antworten
Alt 09.12.2004, 06:23  
Erfahrener Benutzer
 
Registriert seit: 29.10.2004
Beiträge: 1.781
derHund
Standard

Zitat:
mit DISTINCT fasst du mehrere Datensätze bei denen 'parent' identisch ist zu einem zusammen. Der Wert für 'timestamp' ist aber wahrscheinlich immer unterschiedlich. MySQL kann also gar nicht nach 'timestamp' sortieren, da es ja für jeden 'parent'-Wert mehrere timestamps gibt!
häh?
Zitat:
weiss ich. denk trotzdem, dass es nich so heissen sollte. wozu gibts den standard wenn man sich doch nich dran haelt *G
ja, aber das kann trotzdem nicht der fehler sein.

der threadstarter soll erst einmal nen beweis liefern, daß ...
Zitat:
Die ORDER BY clauses wird gar nicht beachtet,
__________________
derHund ist offline   Mit Zitat antworten
Alt 09.12.2004, 13:14  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von derHund
häh?
also noch einmal: Er hat in seiner Tabelle die Felder 'parent' und 'timestamp'.

Mit DISTINCT wird verhindert, dass identische Werte in 'parent' doppelt ausgegeben werden.

Ein Ausgabewert kann nun also für mehrere Datensätze und somit auch für mehrere timestamps stehen, welchen timestamp sollte MySQL nun also für ORDER BY verwenden ?

Alles klar?
  Mit Zitat antworten
Alt 09.12.2004, 15:30  
Erfahrener Benutzer
 
Registriert seit: 29.10.2004
Beiträge: 1.781
derHund
Standard

Zitat:
Ein Ausgabewert kann nun also für mehrere Datensätze und somit auch für mehrere timestamps stehen, welchen timestamp sollte MySQL nun also für ORDER BY verwenden ?
mysql verwendet den timestamp, der zum ersten wert pro distinct gehört, da distinct nicht anderes macht, als alle mehrfachen vorkommen zu droppen und das erste zu behalten.
__________________
derHund ist offline   Mit Zitat antworten
Alt 09.12.2004, 16:42  
Gast
 
Beiträge: n/a
Standard

Zitat:
Ist das feld timestamp auch vom typ timestamp?
Das Feld timestamp ist vom Typ INT. Und die Bennung ist unwichtig, da ich schon viele andere Spalten so genannt habe und diese keine Fehler zeigten.



Zitat:
der threadstarter soll erst einmal nen beweis liefern, daß ...
Zitat:
Die ORDER BY clauses wird gar nicht beachtet,
Wie soll ich das beweisen? Jedenfalls wird keine Fehlermeldung ausgegeben!



Zitat:
mysql verwendet den timestamp, der zum ersten wert pro distinct gehört, da distinct nicht anderes macht, als alle mehrfachen vorkommen zu droppen und das erste zu behalten.
Werden zuerst die doppelten Einträge gedroppt und danach sortiert oder andersrum? Logisch wäre ja das erst gedroppt wird! Vielleicht liegt es daran ?

Bemerkung: Wenn ich LIMIT 10 ranhänge, gibt es da keine Probleme!
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Frage zu DISTINCT pino Datenbanken 5 16.07.2006 20:51
DISTINCT!!! kickz Datenbanken 33 24.02.2006 00:51
distinct andersrum? lomtas Datenbanken 4 30.01.2006 16:12
problem bei distinct datenbankabfrage... Promaetheus Datenbanken 2 25.01.2006 17:28
Mehr als ein Feld mit Distinct in einem Query auslesen ?? Bouni PHP-Fortgeschrittene 9 19.12.2005 12:43
Distinct und While bekommen sich in die Haare CrackPod PHP Tipps 2007 5 30.11.2005 15:15
[Erledigt] COUNT und DISTINCT: Spalteneinträge ausgeben Datenbanken 15 19.09.2005 20:11
suchanfrage mit join und distinct Crypi Datenbanken 5 26.08.2005 10:11
[Erledigt] DiSTINCT Datenbanken 3 04.07.2005 11:32
SELECT DISTINCT denax PHP Tipps 2004-2 4 29.12.2004 21:42
[Erledigt] mit DISTINCT wird immer noch 2 mal ausgegeben? PHP Tipps 2004-2 4 27.11.2004 11:45
Logfile auswerten/ Problem mit DISTINCT und count und co... supertramp Datenbanken 4 21.09.2004 01:39
DISTINCT oder ORDER BY unknownsoul Datenbanken 5 20.08.2004 12:12
[Erledigt] DISTINCT name und danach Count jedes namens Datenbanken 1 14.07.2004 18:54
distinct liefert falsches Ergebnis! PHP Tipps 2004 4 03.07.2004 20:48

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
für jeden wert bei distinct, mysql distinct order by timestamp

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:04 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.