is er iemand die me kan helpen bij het sorteren van gegevens uit de database waarbij er getallen in de omschrijving staan die ik in de while graag alphanumeric wil tonen op het scherm.
Kan dit al in de SELECT mbv Order by of moet ik in een later stadium doen?
Met de gewone order by zet hij 11 boven de 8. Dus iPhone 8 of iPhone 11 in de omschrijving.
Beide aangedragen opties waren niet het gewenste antwoord.
Inmiddels heb ik na heel wat speurwerk de oplossing gevonden en doet volledig aan mijn vraag en wensen...
ORDER BY CAST(CASE WHEN modelnaam LIKE '%[0-9][0-9][0-9][0-9][0-9][0-9][0-9]' THEN RIGHT(modelnaam ,7) WHEN modelnaam LIKE '%[0-9][0-9][0-9][0-9][0-9][0-9]' THEN RIGHT(modelnaam ,6) WHEN modelnaam LIKE '%[0-9][0-9][0-9][0-9][0-9]' THEN RIGHT(modelnaam ,5) WHEN modelnaam LIKE '%[0-9][0-9][0-9][0-9]' THEN RIGHT(modelnaam ,4) WHEN modelnaam LIKE '%[0-9][0-9][0-9]' THEN RIGHT(modelnaam ,3) WHEN modelnaam LIKE '%[0-9][0-9]' THEN RIGHT(modelnaam ,2) WHEN modelnaam LIKE '%[0-9]' THEN RIGHT(modelnaam ,1) ELSE NULL END AS INT)
Wat werkte er niet aan de aangedragen mogelijkheden?
?Onbekende gebruiker
04-03-2024 12:23
Omdat een iPhone meerdere modellen heeft in dezelfde serie.
Dus iPhone 13, iPhone 13 Pro en iPhone 13 Pro Max.
Dus het is niet te doen om het getal in een aparte kolom te plaatsen om het dan in de db toe te voegen of eruit te filteren.
De andere optie kijkt enkel naar het getal en voldoet dus niet aan de totale volgorde in de gehele naam van het model.
Ik ben blij dat ik de oplossing toch heb gevonden.
Ik merk dat mijn optie ook niet optimaal werkt en wil toch die andere opties eens uitproberen.
Op internet is er veel discussie over hoe dit aan te pakken en waarom het niet als standaard is ingesteld in php en in mysql.
Dus ik zou graag dit onderwerp wat uitgebreider willen zien. Wat moet ik bijvoorbeeld instellen in de database en wat in de select ?