Goede ochtend,
Op dit moment ben ik bezig met een webshop te verbeteren. De klant wil dat de maten die zij opgeeft oplopend worden geordend.Het probleem is, de optienamen staan als string in de database en niet als integer, omdat het dezelfde tabel is voor onder andere kleuren.
Dus ik dacht, als ik dan ORDER BY `kolomnaam` ASC doe, loopt het ook nog goed met de kleuren. Helaas is volgens SQL 140 × 80 kleiner als 80 × 80, omdat een 1 kleiner is als een 8. Dus ik ging verder met de prijs van de optie, omdat iets kleiner ook goedkoper is. Alleen, sommige opties kosten evenveel, terwijl het wel andere maten zijn. Ik kon het gedeeltelijk oplossen met ORDER BY `OPTIEPRIJS` ASC, 'OPTIENAAM' ASC, maar dan vind hij nog steeds dan 140 kleiner is als 80.
Na wat nadenken, zou ik eventueel voor prijzen een ander teken dan 'x' kunnen gebruiken, bijvoorbeeld '|'. Vervolgens kijken in de webshop of het teken '|' er in voorkomt, zo ja exploden en ordenen op de juiste grote. Echter denk ik dat dit een best grote omweg is naar wat ik wil.
Kort samengevat, hoe kan ik maten die als string in de database staat ordenen als een integer, terwijl er ook nog kleuren in dezelfde kolom (wel in een andere rij) staan?
Alvast bedankt!
Op dit moment ben ik bezig met een webshop te verbeteren. De klant wil dat de maten die zij opgeeft oplopend worden geordend.Het probleem is, de optienamen staan als string in de database en niet als integer, omdat het dezelfde tabel is voor onder andere kleuren.
Dus ik dacht, als ik dan ORDER BY `kolomnaam` ASC doe, loopt het ook nog goed met de kleuren. Helaas is volgens SQL 140 × 80 kleiner als 80 × 80, omdat een 1 kleiner is als een 8. Dus ik ging verder met de prijs van de optie, omdat iets kleiner ook goedkoper is. Alleen, sommige opties kosten evenveel, terwijl het wel andere maten zijn. Ik kon het gedeeltelijk oplossen met ORDER BY `OPTIEPRIJS` ASC, 'OPTIENAAM' ASC, maar dan vind hij nog steeds dan 140 kleiner is als 80.
Na wat nadenken, zou ik eventueel voor prijzen een ander teken dan 'x' kunnen gebruiken, bijvoorbeeld '|'. Vervolgens kijken in de webshop of het teken '|' er in voorkomt, zo ja exploden en ordenen op de juiste grote. Echter denk ik dat dit een best grote omweg is naar wat ik wil.
Kort samengevat, hoe kan ik maten die als string in de database staat ordenen als een integer, terwijl er ook nog kleuren in dezelfde kolom (wel in een andere rij) staan?
Alvast bedankt!