php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 18.11.2011, 05:26  
Neuer Benutzer
 
Registriert seit: 18.11.2011
Beiträge: 26
PHP-Kenntnisse:
Fortgeschritten
grebaldi wird schon bald berühmt werden
Standard [Erledigt] Alternative Auswertung von MAX()

Hi Leute!

Ich bin neu hier, wie meine Beitragszahl erkennen lässt und muss Euch auch gleich mal mit einem Problem auf den Sack gehen.

Ich habe eine Tabelle, jeder Eintrag verfügt über ein Datum "date". Mit MAX(date) kann ich logischerweise erfragen, welcher Eintrag das jüngste Datum hat, die Information nenne ich einfach mal "most_recent".

Meine Idee ist nun, eine Abfrage zu schreiben, die mir alle Einträge ausgibt, plus eine Spalte "most_recent", die immer das jüngste Datum bereithält. Dies soll bezwecken, dass ich iterativ "date" mit "most_recent" vergleichen kann, um in php ein flag zu erzeugen, dass den jüngsten Eintrag markiert.

Die MAX()-Aggregatfunktion schneidet aber sämtliche Ergebnisse bis auf Eines ab (sofern kein GROUP BY-Statement gesetzt ist, das aber für mein Beispiel nicht von Bedeutung ist)

Natürlich könnte ich für diesen Vergleich "most_recent" auch separat abfragen. Dies würde mir allerdings einiges an Flexibilität rauben, da ich für die Zusatzabfrage (oder ggf. Unterabfrage) natürlich auch die FROM/WHERE/etc.-Klauseln wiederholen müsste.

Meine Frage also lautet: Kann ich MAX() irgendwie unter Einbeziehung aller sonstigen Ergebnisse einer Abfrage anwenden? Bzw. gibt es eine Alternative?

Ich hoffe ich konnte mein Problem einigermaßen plausibel schildern und freue mich auf Eure Antworten.

beste Grüße,
grebaldi

p.S.: Ich hab ja zuerst versucht hier ein paar Beiträge zu finden, bei denen ich meine bescheidene Hilfe anbieten kann. Aber Ihr seid alle so verdammt flink
grebaldi ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 18.11.2011, 11:08  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard

Wenn du keine Subqueries benutzen willst, wäre es vielleicht eine Option, die Tabelle einfach nach date zu sortieren?

Ansonsten kommst du IMHO nicht um eine Duplizierung der Bedingung herum.
fab ist offline   Mit Zitat antworten
Alt 18.11.2011, 15:16  
Neuer Benutzer
 
Registriert seit: 18.11.2011
Beiträge: 26
PHP-Kenntnisse:
Fortgeschritten
grebaldi wird schon bald berühmt werden
Standard

Das Problem hat sich erledigt. Ich habe eine Lösung ohne die Verwendung von MAX() gefunden, es ist zwar keine allgemeine Lösung für das Problem, aber ich will sie euch trotzdem nicht vorenthalten:

Nachdem ich die Abfrage ausgeführt habe iteriere ich ohnehin über die Ergebnisse, um daraus Objekte zu erzeugen. Ich habe der Klassendefinition dieser Objekte eine statische Variable $most_recent hinzugefügt.

Während ich nun iteriere überprüfe ich jedesmal ob der Wert in der Spalte "date" größer ist als $most_recent. Wenn ja, wird $most_recent auf diesen Wert gesetzt.

Ob nun ein bestimmtes Objekt das Jüngste ist, kann ich einfach herausfinden, indem ich $this->date === self::$most_recent überprüfe.

Vor einer erneuten Abfrage wird dann $most_recent auf einen Ausgangswert gesetzt.

Diese Lösung funktioniert nur, weil in meinem System die beschriebene Ergebnismenge hinfällig wird, sowie eine neue Abfrage ausgeführt wird. Wollte ich nun die Ergebnisse persistent halten, müsste ich die Ergebnismengen in einem weiteren Objekt kapseln, das von sich aus eine Variable $most_recent bereithält.

Vielen Dank an alle, die sich Gedanken über mein Problem gemacht haben!

beste Grüße,
grebaldi
grebaldi 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
[Erledigt] Alternative Syntax PHP sinnvoll ? dreamcatcher PHP Einsteiger 16 02.09.2011 10:28
Navicat openSource Alternative dreamcatcher Off-Topic Diskussionen 1 28.05.2011 11:14
OpenGeoDB Alternative? tarian Off-Topic Diskussionen 14 11.12.2010 17:33
Fehler bei Auswertung eines Formulars bidu2004 PHP Tipps 2010 10 25.04.2010 21:17
Alternative zu file_get_contents() Hannibal PHP Tipps 2009 5 19.09.2009 14:20
$_GET alternative fuer URL paramenter chris2009 PHP-Fortgeschrittene 5 23.11.2008 18:12
Alternative zum Datenbank Counter Aris Sung PHP Tipps 2007 3 01.03.2007 19:29
sichere alternative zu HTTP_REFERER ph!l PHP Tipps 2006 8 09.03.2006 18:54
Alternative zu imagettftext() gesucht pit62 PHP Tipps 2006 8 09.03.2006 12:36
Alternative zur IP Sperre PHP Tipps 2007 4 02.12.2005 13:19
Auswertung Server, Hosting und Workstations 4 23.07.2005 15:11
[Erledigt] Auswertung und Uebertragung von Werten in Links PHP Tipps 2005-2 0 15.06.2005 12:12
[Erledigt] Auswertung von Mehrfachauswahllisten Datenbanken 25 26.05.2005 15:12
Alternative für imap_fetchstructure() themonk PHP Tipps 2005 11 23.03.2005 15:00
Alternative zu if abfrage PHP Tipps 2004 10 16.08.2004 00:28

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
datenbank auswerten max, php max alternative

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:33 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