Har prøvet følgende 2 ORDER BY SELECT * FROM `tbPlacering` ORDER BY CHAR_LENGTH(`Navn`) ASC, `Navn` ASC SELECT * FROM `tbPlacering` ORDER BY `Navn` ASC
Fandt så denne løsning. Men tror ikke det er den helt korrekte version. SELECT * FROM `tbPlacering` ORDER BY LEFT(`Navn`,3) ASC,CHAR_LENGTH(`Navn`) ASC, `Navn` ASC
#1 Det er desværre ikke mig som indtaster de data ind. Men mig som står med udfordringen. Og kan ikke få de folk som indtaster til at skrive på den måde. :-(
Nej. Har ikke mulighed for at oprette det særskilt. Bliver en større operation. Men må leve med den "Løsning" jeg kom frem til med SELECT * FROM `tbPlacering` ORDER BY LEFT(`Navn`,3) ASC,CHAR_LENGTH(`Navn`) ASC, `Navn` ASC
Undrede mig bare lidt over det. Og tænkte måske nogen havde en smart løsning på det uden at ændre i DB.
Der er jo også den mulighed at du laver sorteringen i php. Så altså at du henter kolonnen ind usorteret, og så i php først splitter hver streng op i to (explode) og så sorterer først på strengen, og derefter sorterer på den anden del som integer.
Godt tænkt Ejvindh. Men igen. Hvorfor ikke hente det direkte ud som man har behov for det. Sad lige og kiggede på det igen. Hvad siger folk til denne SQL? SELECT * FROM `tbPlacering` ORDER BY SUBSTRING_INDEX(`Navn`,' ',1) ASC, CHAR_LENGTH(`Navn`) ASC, `Navn` ASC
Tror jeg går med denne SQL streng. Den lader til at køre godt. Og som jeg læser det burde den kunne sortere på 3 ord. SELECT * FROM `tbPlacering` ORDER BY SUBSTRING_INDEX(`Navn`,' ',1) ASC, CHAR_LENGTH(`Navn`) ASC, SUBSTRING_INDEX(`Navn`,' ',2) ASC, CHAR_LENGTH(`Navn`) ASC, SUBSTRING_INDEX(`Navn`,' ',3) ASC, CHAR_LENGTH(`Navn`) ASC
Da jeg kørte det på min tabel med drift data skulle den lige rettes til følgende. SELECT `Placering_ID`, `Navn` FROM `tbPlacering` ORDER BY SUBSTRING_INDEX(`Navn`,' ',1) ASC, FIELD(`Navn`,CONCAT(SUBSTRING_INDEX(`Navn`,' ',1),'%') ) ASC, CHAR_LENGTH(CONCAT(SUBSTRING_INDEX(`Navn`,' ',1),'%')) ASC, CONCAT(SUBSTRING_INDEX(`Navn`,' ',1),'%') ASC, FIELD(`Navn`,CONCAT(SUBSTRING_INDEX(`Navn`,' ',2),'%') ) ASC, CHAR_LENGTH(CONCAT(SUBSTRING_INDEX(`Navn`,' ',2),'%')) ASC, CONCAT(SUBSTRING_INDEX(`Navn`,' ',2),'%') ASC, FIELD(`Navn`,CONCAT(SUBSTRING_INDEX(`Navn`,' ',3),'%') ) ASC, CHAR_LENGTH(CONCAT(SUBSTRING_INDEX(`Navn`,' ',3),'%')) ASC, CONCAT(SUBSTRING_INDEX(`Navn`,' ',3),'%') ASC, FIELD(`Navn`,CONCAT(SUBSTRING_INDEX(`Navn`,' ',4),'%') ) ASC, CHAR_LENGTH(CONCAT(SUBSTRING_INDEX(`Navn`,' ',4),'%')) ASC, CONCAT(SUBSTRING_INDEX(`Navn`,' ',4),'%') ASC, FIELD(`Navn`,CONCAT(SUBSTRING_INDEX(`Navn`,' ',5),'%') ) ASC, CHAR_LENGTH(CONCAT(SUBSTRING_INDEX(`Navn`,' ',5),'%')) ASC, CONCAT(SUBSTRING_INDEX(`Navn`,' ',5),'%') ASC
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.