Maximum selecteren.

Status
Niet open voor verdere reacties.

sanma

Gebruiker
Lid geworden
11 dec 2008
Berichten
170
Hallo,

Ik wil graag het volgende in PHP:

$lijstsql = "SELECT * FROM `klikenwingeklikt` WHERE geld > 0";
$qury = Mysql_Query($lijstsql);
While($lijst = Mysql_Fetch_Assoc($qury))

echo"$lijst[gebruikersnaam]";

Als ik dit doe dan krijg ik alle gebruikersnamen die meer dan 0 geld hebben. Ik wil er graag maar 1 hebben waarbij de ID de hoogste is. Dus in de tabel klikenwingeklikt zit een rij id.
 
PHP:
$lijstsql = "SELECT * FROM `klikenwingeklikt` WHERE geld > 0 
ORDER BY id DESC
LIMIT 1";

Je kunt in de query het aantal resultaten sorteren op het id, en opgeven hoeveel resultaten je terug wilt hebben.

ORDER BY <naam veld> DESC betekend dat je alle resultaten sorteert op <naam veld>, aflopend (dus de hoogste eerst)

LIMIT x betekend dat je alleen de eerste x resultaten wilt zien, de rest wordt niet terug gestuurd.

Hoop dat dit je verder helpt!
 
Bedankt voor je snelle reactie, dit is precies wat ik bedoel. Thanx!!
 
@Vegras, daar zat ik ook aan te denken, maar dan heb je alleen de waarde van dat veld, en niet de andere velden van het betreffende record.

Misschien dat je nog:

Code:
SELECT * FROM `klikenwingeklikt` WHERE geld = MAX(geld);

kunt gebruiken.
 
@ErikBooy007: of, zoiets (weet niet zeker of-ie dan alleen de max ID pakt of de hele rij ervan maargoed):
Code:
SELECT naam, achternaam, bbq, MAX(id) as 'maxID' FROM foo WHERE geld > 0;
?
 
Tsja, zo goed ben ik ook niet thuis in MySQL, maar ik zou zeggen dat je nu het volgende krijgt:

Van álle records met geld > 0 de naam, achternaam, bbq en allemaal dezelfde waarde voor maxID, maar daar kan ik me in vergissen.

Ik denk dat het het handigst is voor de TS om toch bij de oplossing van Frats te blijven. ;)

Volgens mij is de MAX functie in dit geval alleen handig als je wilt weten "Wat is de grootste hoeveelheid geld in de tabel?" en de rest je niet interesseert.
 
@ErikBooy007: of, zoiets (weet niet zeker of-ie dan alleen de max ID pakt of de hele rij ervan maargoed):
Code:
SELECT naam, achternaam, bbq, MAX(id) as 'maxID' FROM foo WHERE geld > 0;
?

Die query slaat sowieso nergens op. Bij een aggregate function, zoals MAX() moet je altijd GROUP BY gebruiken op alle overige kolommen. Als MySQL deze query niet afschiet, heb je MySQL niet juist geconfigureerd.

Daarnaast is ORDER BY id DESC meestal niet zo'n heel goed idee, omdat de hoogte van het id niet noodzakelijkerwijs iets over de leeftijd van het record.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan