PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : in der Datenbank bereits größten Wert suchen


Doc_McSky
01.09.2009, 10:34:36
Hallo Leute,

im Augenblick suche ich nach der Möglichkeit, bereits beider DB Abfrage nur die Zeile mit dem höchsten Wert einer Spalte zurückzubekommen. Geht das?

Also ich kann ja fragen:

$sql = "SELECT * FROM tabelle WHERE spalte_x=34";


oder


$sql = "SELECT * FROM tabelle WHERE spalte_x>20 AND spalte_x<30";


alles kein Problem, klaro. Jetzt will ich aber folgendes (ich formuliere die sql Anweisung mal menschlich aus), denn dazu wüsste ich keine SQL Syntax:


$sql = "SELECT * FROM tabelle WHERE spalte_id=1234 AND (spalte_x den höchsten Wert hat von allen spalte_x Einträgen)";


spalte_x ist natürlich eine Integer Spalte, also sollte eine zahlentechnische Verarbeitung kein Problem sein.
Kann mir da jemand einen Code oder Syntax dazu nennen? Das wäre echt prima...

Gruß
Doc

DokuLeseHemmung
01.09.2009, 10:38:37
SELECT *
FROM tabelle
WHERE spalte_id=1234
ORDER BY spalte_x DESC
LIMIT 1

SELECT MAX(spalte_x) AS maximum
FROM tabelle
WHERE spalte_id=1234


SELECT * ist böse
Und du bist auch böse, weil du zu wenig Handbuch liest und auch keine Tutorials durcharbeitest.

Doc_McSky
01.09.2009, 10:52:35
Hallo,

ja "*" ist böse und macht man nicht, sollte hier ja auch nur der Einfachheit dienen, obwohl mir noch immer nicht zu 100% klar ist warum, irgendwie ist das eben angreifbar, wie auch immer.

Und ja, ich bin tatsächlich "böse", denn ich habe einfach wieder ein Thema eröffnet ohne vorher gründlich nachzudenken, auf die Sortierungsvariante hätte man echt auch alleine kommen sollen, ich Depp, gebe ich ja zu.

So, trotzdem danke und ich hoffe jetzt sind wir wieder virtuelle Freunde :-)

Gruß
Doc

DokuLeseHemmung
01.09.2009, 11:03:59
Der * ist schlecht weil:
1. resourcen verplemperung, es werden Spalten geliefert, welche du nicht brauchst
2. die Reihenfolge der Spalten wird von der Tabellenstruktur bestimmt und nicht vom Programmierer des Statements
3. Das Statement ist unlesbar, weil man nicht deutlich sieht welche Spalten geliefert werden
4. Es wiederspricht einer der Grundregeln: "Sei Ausdrucksstark!"

Also nicht "angreifbar", sondern einfach nur undiszipliniert und unsauber.

Doc_McSky
01.09.2009, 11:33:13
Ok, ok.

Ich halte mich sowieso schon dran, den Stern benutze ich nur zum schnellen Test und bei Probklemen, wenn es auf die Ergebnisse eigentlich gerade nicht ankommt, ansonsten immer die korrekten Spalten, versprochen. ;-)

Doch, den stern verwende ich doch ab und zu, da ich manchmal Ausgaben habe, bei denen ich alle Spalten brauche, da bin ich dann doch faul und nutze den Stern statt dutzend Spaltennamen einzutragen, ich gestehe und man verzeihe mir, ich will "Ausdrucksstark" bleiben.

Gruß
Doc