php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 24.03.2006, 02:50  
Neuer Benutzer
 
Registriert seit: 29.02.2004
Beiträge: 19
Micro
Standard "ORDER BY" in einer Tabelle nach zwei verschiedene

Tach auch...

Folgendes Problem:
In einer Tabelle sind die Felder "Name", "Punkte" und "Datum" als Timestamp.

Nun möchte ich die Ausgabe so, das in erster Linie nach Punkten ausgegeben wird (größte Punktzahl als erstes), egal welches Datum.
Z.B:
Name1, 12 Punkte, 1143150000
Name2, 10 Punkte, 1143164695

Aber: bei gleicher Punktzahl muss bei neuerem Datum dieser Wert über den vorherigen Wert stehen!
Beispiel:
Name2, 12 Punkte, 1143164695
Name1, 12 Punkte, 1143150000

Wie ist denn nun die SQL-Abfrage? Habe es schon versucht mit: "order by datum ASC, punkte ASC". Leider sortiert das Script dann falsch.

Kann mir bitte einer helfen?


Gruß aus Dortmund
Micro
__________________
... er sagte jemand, es könnte schlimmer kommen...
... und siehe da, es kam schlimmer...
Micro ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 24.03.2006, 08:13  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Richtig wäre wohl ORDER BY punkte DESC, datum DESC (zunächst absteigend nach Punkten sortieren und bei gleichen Punktzahlen absteigend nach dem Datum).
xabbuh ist offline   Mit Zitat antworten
Alt 24.03.2006, 13:24  
Neuer Benutzer
 
Registriert seit: 29.02.2004
Beiträge: 19
Micro
Standard

Leider nicht...

Als Ausgabe bekomme ich damit, das erst immer nach Datum, dann erst nach Punkte sortiert werden. Somit kann es vorkommen, das ein neueres Datum zuerst kommt, aber eine niedrige Punktzahl hat.
__________________
... er sagte jemand, es könnte schlimmer kommen...
... und siehe da, es kam schlimmer...
Micro ist offline   Mit Zitat antworten
Alt 24.03.2006, 13:35  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 4.651
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Nö. Wenn du ORDER BY punkte schreibst, wird zuerst nach Spalte "punkte" sortiert...
__________________
Entwickler aus Leidenschaft und ein Zahnrad in einem der größten Java-Projekte der Welt.
mepeisen ist offline   Mit Zitat antworten
Alt 24.03.2006, 15:16  
Neuer Benutzer
 
Registriert seit: 29.02.2004
Beiträge: 19
Micro
Standard

Schon richtig...

Aber denn dann ORDER BY DATUM kommt, wird erst nach Datum sortiert. Es wird sozusagen die Direktive ORDER BY PUNKTE überschrieben. Und das ist ja genau das, was ich nicht brauchen kann.

Erst sortieren nach Punkte. Bei gleicher Punktzahl muss die Position mit dem neueren Datum oben stehen. Danach sollten die Positionen mit den niedrigen Punkten stehen, egal welches Datum....
__________________
... er sagte jemand, es könnte schlimmer kommen...
... und siehe da, es kam schlimmer...
Micro ist offline   Mit Zitat antworten
Alt 24.03.2006, 15:25  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 4.651
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblickmepeisen ist ein Lichtblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Code:
ORDER BY punkte, datum
macht genau das. Wie sieht dein SQL vollständig aus, der trotzdem nicht richtig sortiert?
__________________
Entwickler aus Leidenschaft und ein Zahnrad in einem der größten Java-Projekte der Welt.
mepeisen ist offline   Mit Zitat antworten
Alt 24.03.2006, 17:12  
Neuer Benutzer
 
Registriert seit: 29.02.2004
Beiträge: 19
Micro
Standard

Zitat:
Zitat von mepeisen
Wie sieht dein SQL vollständig aus, der trotzdem nicht richtig sortiert?
So:
Code:
select * from dbname order by punkte DESC, datum DESC
Standard halt...
__________________
... er sagte jemand, es könnte schlimmer kommen...
... und siehe da, es kam schlimmer...
Micro ist offline   Mit Zitat antworten
Alt 24.03.2006, 17:16  
Gast
 
Beiträge: n/a
Standard

Wenn das nicht primär nach punkte und bei Gleichheit in diesem Feld nach datum sortiert, macht Deine mysql Version etwas anders als die aller anderen Benutzer.
  Mit Zitat antworten
Alt 25.03.2006, 08:25  
Neuer Benutzer
 
Registriert seit: 29.02.2004
Beiträge: 19
Micro
Standard

Nicht wirklich...

Hab' aber den Fehler gefunden.
Es lag nicht an PHP, sondern an die Feldzuweisung in der DB. Hatte den Feldtype auf CHAR stehen. Habe es nun umgesetzt auf TINYINT. Jetzt funktioniert es einwandfrei.

Vielen aufrichtigen Dank für eure Hilfe!
Ohne die würde ich immer noch an meine Zurechnungsfähigkeit und mathematischen Kenntnisse zweifeln :wink:

Viele Grüße aus Dortmund

Micro
__________________
... er sagte jemand, es könnte schlimmer kommen...
... und siehe da, es kam schlimmer...
Micro ist offline   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
Verschiedene Werte in verschiedene Zeilen in eine Tabelle einfügen Heizkessel PHP Tipps 2008 4 15.02.2008 13:53
Zeilenanzahl einer tabelle mit WHERE aber ohne schleife? sovereign Datenbanken 13 17.04.2006 20:34
[Erledigt] Problem mit dem Füllen einer Tabelle über Formular PHP Tipps 2006 18 10.01.2006 12:51
[Erledigt] Problem mit Anzeige einer Tabelle mit dem Firefox? HTML, Usability und Barrierefreiheit 8 28.11.2005 15:08
Tabelle aktualisieren Datenbanken 3 23.11.2005 09:54
Sortieren "ORDER BY" ?? Cyrus Datenbanken 11 30.10.2005 11:12
Problem mit mySQL Datenbanken 7 27.09.2005 12:06
mysql abfrage über 4 Tabelle - bis 3 geht, bei der 4. habert Datenbanken 2 08.09.2005 11:59
kleine Frage zu "ORDER BY" [erledigt] PHP Tipps 2005-2 21 23.08.2005 15:18
spielplan, und Tabelle erstellen alias_zappler PHP Tipps 2005-2 3 01.08.2005 00:25
"Order by" in sql Befehl einbauen - aber wo? Datenbanken 1 18.07.2005 13:38
Abfrage gleiche Tabelle, verschiedene Werte Datenbanken 12 08.04.2005 13:55
[Erledigt] Tabelle in Tabelle ausrichten HTML, Usability und Barrierefreiheit 7 03.01.2005 14:32
Sortieren anhand einer zweiten Tabelle PHP Tipps 2004 6 20.09.2004 09:03
[Erledigt] HILFE: Column count doesn't match value count at row 1 Datenbanken 17 12.06.2004 16:45

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
order by punkten nach -, me.form.orderby = \ [datum] desc \, php tabelle order by, nach datum sortiert aus tabelle mysql order by, nach zwei unterschiedliche, tabel php order by, php html tabelle sortieren orderby, order by date, mysql 2 daten aus gleicher tabelle sortieren, position in tabelle mysql, php sortieren gleiche punktzahl, liste ordnen mit mysql oder java, php where order tabelle, order by date desc, order by ... sortieren nach, php tabelle order, sql order by unterschiedliche, java tabelle unterschiedliche zeilen, sql developer nach datum sortieren, mysql order by desc zahlen richtig sortieren

Alle Zeitangaben in WEZ +1. Es ist jetzt 17:22 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.