Mehrere Sortierkriterien
Heizer
- datenbank
0 Daniela Koller0 Heizer
0 Kerstin
Hi Forum
Ich habe eine Datenbank mit Links, die ich nach zwei Kriterien sortieren will:
1. Neue Links (gekennzeichnet durch ein Feld NEW=1)
2. Alphabetisch
Soll heißen, ganz oben kommen die neuen in Alphabetischer Reihenfolge, und dann die restlichen, auch in alphabetischer Reihenfolge. Ich habe versucht, daß in die MySQL query zu schreiben, in der Art "ORDER BY new,name" aber das führt nicht zu meinem gewünschten Ergebnis. Im Moment weiche ich aus, in dem ich zuerst eine query mit "WHERE new=1 ORDER BY name" und dann eine mit "WHERE new=0 ORDER BY name" schicke. Ich halte das aber nicht für sehr performant, deshalb wäre ich für eine Möglichkeit, dies mit einem query zu erreichen sehr dankbar.
Heizer
Hi Heinzer
Ich habe eine Datenbank mit Links, die ich nach zwei Kriterien sortieren will:
- Neue Links (gekennzeichnet durch ein Feld NEW=1)
- Alphabetisch
Soll heißen, ganz oben kommen die neuen in Alphabetischer Reihenfolge, und dann die restlichen, auch in alphabetischer Reihenfolge. Ich habe versucht, daß in die MySQL query zu schreiben, in der Art "ORDER BY new,name" aber das führt nicht zu meinem gewünschten Ergebnis. Im Moment weiche ich aus, in dem ich zuerst eine query mit "WHERE new=1 ORDER BY name" und dann eine mit "WHERE new=0 ORDER BY name" schicke. Ich halte das aber nicht für sehr performant, deshalb wäre ich für eine Möglichkeit, dies mit einem query zu erreichen sehr dankbar.
wenn ich richtig verstanden habe, ist das Problem, das 0 vor 1 kommt
und deswegen genau andersrum als du gerne möchtest, du kannst sagen
ob du aufsteigen sortieren willst mit ASC und DESC. Default ist afk
ASC. In deinem Fall müsste als ein:
ORDER by new DESC, name
helfen.
Gruss Daniela
Hi Heinzer
Ich habe eine Datenbank mit Links, die ich nach zwei Kriterien sortieren will:
- Neue Links (gekennzeichnet durch ein Feld NEW=1)
- Alphabetisch
Soll heißen, ganz oben kommen die neuen in Alphabetischer Reihenfolge, und dann die restlichen, auch in alphabetischer Reihenfolge. Ich habe versucht, daß in die MySQL query zu schreiben, in der Art "ORDER BY new,name" aber das führt nicht zu meinem gewünschten Ergebnis. Im Moment weiche ich aus, in dem ich zuerst eine query mit "WHERE new=1 ORDER BY name" und dann eine mit "WHERE new=0 ORDER BY name" schicke. Ich halte das aber nicht für sehr performant, deshalb wäre ich für eine Möglichkeit, dies mit einem query zu erreichen sehr dankbar.
wenn ich richtig verstanden habe, ist das Problem, das 0 vor 1 kommt
und deswegen genau andersrum als du gerne möchtest, du kannst sagen
ob du aufsteigen sortieren willst mit ASC und DESC. Default ist afk
ASC. In deinem Fall müsste als ein:
ORDER by new DESC, name
helfen.
Super Danke, funktioniert.
Übrigens muß es dann in PHP ORDER BY 'new' DESC, 'name' heißen, aber ich hab noch nicht so recht verstanden, wann man die einfachen Anführungszeichen verwenden muß, und wann nicht (und wann die Apostrophzeichen für Tabellen wie in phpMyAdmin)
Gruss Daniela
Gruß zurück
Heizer
Hi Heizer
Super Danke, funktioniert.
Übrigens muß es dann in PHP ORDER BY 'new' DESC, 'name' heißen, aber ich hab noch nicht so recht verstanden, wann man die einfachen Anführungszeichen verwenden muß, und wann nicht (und wann die Apostrophzeichen für Tabellen wie in phpMyAdmin)
Eigentlich sind die '' Stringbegrenzer in SQL und müssen bei
Stringvariablen (uu auch bei enum, weis ich jetzt gerade nicht)
angewendet werden, bei Feldnamen dürfen die eigentlich gar nicht
verwendet werden.
Kannst du mir die Quelle sagen woher du das hast? Und funktioniert
es ohne nicht? Möglicherweise liegt es auch am Interface zu MySQL
von PHP, das kenn ich nicht.
Gruss Daniela
Hi Forum
Ich habe eine Datenbank mit Links, die ich nach zwei Kriterien sortieren will:
- Neue Links (gekennzeichnet durch ein Feld NEW=1)
- Alphabetisch
Soll heißen, ganz oben kommen die neuen in Alphabetischer Reihenfolge, und dann die restlichen, auch in alphabetischer Reihenfolge.
Hallo
Wenn ich Dich recht verstanden hab, dann willst Du ne hierarchische Abfrage machen.
Das müsste mit connect by prior gehen...
Gruss Kerstin
Hi Forum
Ich habe eine Datenbank mit Links, die ich nach zwei Kriterien sortieren will:
- Neue Links (gekennzeichnet durch ein Feld NEW=1)
- Alphabetisch
Soll heißen, ganz oben kommen die neuen in Alphabetischer Reihenfolge, und dann die restlichen, auch in alphabetischer Reihenfolge.
Hallo
Wenn ich Dich recht verstanden hab, dann willst Du ne hierarchische Abfrage machen.
Das müsste mit connect by prior gehen...
Sorry, aber das verstehe ich nicht, aber Danielas Vorschlag funktioniert.
Bei der gelegenheit: Gibt es eigetnlich eine Ähnlich gute Docu für MySQL wie SelfHTML und auf php.net für HTML bzw. PHP? Hab noch nichts gefunden
Gruss Kerstin
vielen Dank
Heizer
Bei der gelegenheit: Gibt es eigetnlich eine Ähnlich gute Docu für MySQL wie SelfHTML
Es gibt das MySQL-Handbuch von Guido Stepken, den Link hab ich aber grad leider nicht parat...kann ich Dir auch zumailen.
Was meinst Du mit
»»und auf php.net für HTML bzw. PHP ??
als Einstieg in PHP find ich http://did.mat.uni-bayreuth.de/www2/
sehr gut.
Schau doch mal auf www.php-center.de - da sind auch Links zu weiteren Seiten
Gruss Kerstin