Ik heb het volgende probleem

ik heb twee velden in een tabel prijs

veld 1 = prijs
veld 2 = opties

nu wil ik sorteren oplopend en aflopend op de prijs en op opties waarbij de prijs altijd bovenaan komt te staan.

vb

SELECT * FROM `prijs` ORDER BY `prijs` desc , opties desc

output

1000,00
99,00
1,1
jan
ed
ad

dit is goed

vb2

SELECT * FROM `prijs` ORDER BY `prijs` asc, opties asc

output

ad
ed
jan
1,1
99,00
1000,00


dit is fout. Ik wil eerst altijd de prijs bovenaan hebben maar wel op deze mannier gesorteerd

dus

1,1
99,00
1000,00
ad
ed
jan

is er een optie om het veld prijs altijd als eerste bovenaan de sortering te krijgen of moet ik dit met twee queries doen.

Gr Creator
Kan dat niet gewoon met `prijs` desc, opties asc

Of andersom.

Maar moet gewoon kunnen
Ik weet niet hoe je dit weergeeft, maar in principe krijg je nu dit als je zowel de prijs als opties weergeeft

Prijs | Opties
1,1 | ad
99,00 | ed
1000,00 | jan

Zijn er meer met eenzelfde prijs dan krijg je het zo:

Prijs | Opties
1,1 | ad
1,1 |bd
99,00 | ed
1000,00 | jan
en je haalt uiteraard de backticks weg, voor je eigen gezondheid
de velden zijn alsvolgt gevuld


prijs | opties

1,1 | leeg
1000,00 | leeg
99,00 | leeg
leeg | ed
leeg | ad
leeg | jan

leeg bedoel ik staat niets in

vandaar dat het onder elkaar gesorteerd word

met desc asc switchen maakt niet veel uit . Het probleem blijft bestaan
Jij hebt een vaag DB ontwerp vermoed ik :P

Wil je het uiteidelijke doel hiervan met ons delen? :)
Jacco schreef op 24.09.2007 11:13
Jij hebt een vaag DB ontwerp vermoed ik :P

Wil je het uiteidelijke doel hiervan met ons delen? :)


Ik ga met Jacco mee, zeer waarschijnlijk klopt je datamodel van geen kant. Ga dat eerst regelen en dan is (bijna) alles mogelijk met SQL
laat ik de vraag anders stellen

ik heb een input veld waar je een prijs in kan invullen
ook wordt dit veld gebruikt om eventueel een optie op te geven

bv n.v.t, ruilen

nu wil ik als ik op prijs sorteer dat eerst altijd de prijs oplopend of aflopend weergegeven word en hieronder de opties

als het niet duidelijk is ga een naar marktplaats en sorteer op prijs als voorbeeld

het bovenstaande is een voorbeeld ik zoek alleen de beste oplossing alles is nog te wijzigen










1 item kan altijd maar 1 optie hebben :)??

Raad je aan om de opties in een apart tabel te zetten en aan het item te koppelen met het id btw

Dan kun je je opties makkelijker dynamisch ophalen en later ook makelijker (laten) beheren
Inderdaad de opties bijv ruilen wordt een aparte kolom. Je kan met php wel checken of er letters of cijfers zijn in gevuld. Afhankelijk daarvan zoek je in de ene dan wel in de andere kolom.

Wat voor type heeft rpijs bij jou? VARCHAR Denk ik? Dan kan je er sowieso niet goed op sorteten want dan krijg je die
1
10
100
2
21
215545848
3
enz..
Klaasjan Boven schreef op 24.09.2007 11:23
Inderdaad de opties bijv ruilen wordt een aparte kolom. Je kan met php wel checken of er letters of cijfers zijn in gevuld. Afhankelijk daarvan zoek je in de ene dan wel in de andere kolom.

Wat voor type heeft rpijs bij jou? VARCHAR Denk ik? Dan kan je er sowieso niet goed op sorteten want dan krijg je die
1
10
100
2
21
215545848
3
enz..


prijs is een decimal (11,2)
opties is een varchar (20)

Reageren