Akke Skrevet 16. februar 2004 Del Skrevet 16. februar 2004 (endret) I en tabell har jeg "Firma" og "Kontaktperson". Det er mulig å lagre firma uten kontaktperson, men også kontaktperson uten firma. Hvordan sortere en liste etter firmanavn om det finnes, gjør det ikke så sorter på kontaktperson? (alt blir blandet i listen) Endret 16. februar 2004 av Akke Lenke til kommentar
Torbjørn Skrevet 16. februar 2004 Del Skrevet 16. februar 2004 dette står godt forklart på www.mysql.com, det er null problem å sortere etter to kolonner, ie først den ene og så den andre. Jeg ville hatt en id kolonne som er unik for hver rad. dette er god skikk! Lenke til kommentar
Akke Skrevet 17. februar 2004 Forfatter Del Skrevet 17. februar 2004 dette står godt forklart på www.mysql.com, det er null problem å sortere etter to kolonner, ie først den ene og så den andre. Jeg ville hatt en id kolonne som er unik for hver rad. dette er god skikk! ahh.. bare å skille med komma jo Fant ikke sist jeg leitet på mysql.com. Kjører med ID felt og har oppfylt alle normalformene tror jeg. Inget slurv i faget her nei Takker Lenke til kommentar
Akke Skrevet 23. februar 2004 Forfatter Del Skrevet 23. februar 2004 Det funka ikke med komma alikevel, for når "Firma" er tom havner den øverst uansett. Kan man kjøre en IF i spørringen og hvordan ville isåfall den se ut da? Lenke til kommentar
???????? Skrevet 23. februar 2004 Del Skrevet 23. februar 2004 (endret) Det løser du best med CASE - sett f.eks. ' ' (tomt felt) til z eller hva du ønsker. SELECT * FROM tabell ORDER BY CASE FeltetDetSkalSorteresEtter WHEN '' THEN 'z' ELSE FeltetDetSkalSorteresEtter END, DetAndreFeltetDetSkalSorteresEtter EDIT: glem ikke at du alltid burde lage en case når du skal sortere etter det norske alfabetet i mysql, ellers blir ikke rekkefølgen a-å men a-zåæø (det svenske og norske alfabetet er jo ikke likt) Endret 23. februar 2004 av ???????? Lenke til kommentar
Akke Skrevet 23. februar 2004 Forfatter Del Skrevet 23. februar 2004 Tusen takk Genialt! Lenke til kommentar
Akke Skrevet 25. februar 2004 Forfatter Del Skrevet 25. februar 2004 select * from tbl_liste ORDER BY CASE WHEN firma = '' THEN kontaktpers WHEN kontaktpers = '' THEN firma ELSE kontaktpers END ASC Denne fungerer slik jeg vil bortsett fra æ ø å problematikken ?????????? påpekte. Prøvde: select * from tbl_liste ORDER BY CASE WHEN firma = '' THEN CASE kontaktpers WHEN 'æ' THEN 'å' WHEN 'ø' THEN 'æ' WHEN 'å' THEN 'ø' END WHEN kontaktpers = '' THEN CASE firma WHEN 'æ' THEN 'å' WHEN 'ø' THEN 'æ' WHEN 'å' THEN 'ø' END ELSE CASE kontaktpers WHEN 'æ' THEN 'å' WHEN 'ø' THEN 'æ' WHEN 'å' THEN 'ø' END END ASC Men det ble helt feil sortering igjen, hva må til? Lenke til kommentar
???????? Skrevet 25. februar 2004 Del Skrevet 25. februar 2004 (endret) Fjernet for forbedringer - og mulig publisering snart Endret 1. mars 2004 av ???????? Lenke til kommentar
Akke Skrevet 1. mars 2004 Forfatter Del Skrevet 1. mars 2004 Her er en liten artikkel jeg skriver for en php side om dette,setter pris på alle kommentarer om artikkelen! Fin-fin! Burde ligge i en sticky tips post. Skjønner dog fortsatt ikke hvorfor sorteringa blir helt vill med "æ ø å fiksen" inne i den andre CASE'n. select * from tbl_liste ORDER BY CASE WHEN firma = '' THEN CASE kontaktpers WHEN 'æ' THEN 'å' WHEN 'ø' THEN 'æ' WHEN 'å' THEN 'ø' END WHEN kontaktpers = '' THEN CASE firma WHEN 'æ' THEN 'å' WHEN 'ø' THEN 'æ' WHEN 'å' THEN 'ø' END ELSE CASE kontaktpers WHEN 'æ' THEN 'å' WHEN 'ø' THEN 'æ' WHEN 'å' THEN 'ø' END END ASC Lenke til kommentar
???????? Skrevet 1. mars 2004 Del Skrevet 1. mars 2004 Ikke kjør case i case der, bare legg til '' Lenke til kommentar
???????? Skrevet 1. mars 2004 Del Skrevet 1. mars 2004 (endret) Samme post kom 2 ganger! Endret 1. mars 2004 av ???????? Lenke til kommentar
Akke Skrevet 1. mars 2004 Forfatter Del Skrevet 1. mars 2004 Ikke kjør case i case der, bare legg til '' Da vil firma eller kontaktpers havne på bunnen når det er blankt. (eller den bokstaven du setter) Denne fungerer slik jeg vil, bortsett fra æ ø å sortering. select * from tbl_liste ORDER BY CASE WHEN firma = '' THEN kontaktpers WHEN kontaktpers = '' THEN firma ELSE kontaktpers END ASC Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå