Gå til innhold

order by - miks verdi fra to kolonner (mysql)


Anbefalte innlegg

Hei,

 

Jeg har en tabell med kommentarer. To av kolonnene heter "skrevet_tid" og "redigert_tid".

 

Jeg ønsker å sortere disse slik at de nyeste kommentarene kommer øverst. Det vil si at dersom et innlegg blir redigert så skal den flyttes opp.

 

Hvordan løser jeg det?

Lenke til kommentar
Videoannonse
Annonse

Du kan gjøre det slik:

SELECT * FROM table ORDER BY IF(redigert_tid>skrevet_tid,redigert_tid,skrevet_tid) DESC,skrevet_tid DESC

 

Dette er sansynligvis veldig ineffektivt hvis tabellen blir stor. Da blir det mer effektivt å legge inn en ekstra kolonne som inneholder den verdien det skal sorteres etter.

Endret av gxi
Lenke til kommentar
Er ikke vits å gjøre det for komplisert. Dette funker for meg, redigerer du et gammelt innslag, spretter den opp på toppen:

 

 

ORDER BY redigert_tid, skrevet_tid

 

Gjør nok ikke det. For det første må du vel nesten sortere DESC for å få synkende rekkefølge,

dvs. nyeste på topp.

 

Men blir ikke helt riktig det heller... et innlegg som i det heletatt *er* redigert uansett når, vil komme foran et som er opprettet senere og derfor er nyere.

 

Det enkle er ofte det beste ... men ikke alltid :o)

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...