Gå til innhold

Order og "ten latest"


Anbefalte innlegg

Skrevet

Hei,

 

Har et par spørsmål angående mysql/php. Akkurat nå kjører jeg en "order by Title" på databasen, men jeg lurer på om det er mulig å vise kun enkeltbokstaver, eller flere enkeltbokstaver. For eksempel å vise titler ordnet etter a-f, f-k, og lignende?

 

Også lurer jeg på om det går an å vise de 10 siste innleggene fra en database som har en primærnøkkel med auto_increment?

Videoannonse
Annonse
Skrevet

1. SQL: SELECT * FROM tabell WHERE SUBSTRING(kolonne,1,1) = "a"

 

2. SQL: SELECT * FROM tabell ORDER BY kolonne ASC LIMIT 10

 

Har ikke testet. Var det omtrent dette du spurte etter?

 

MVH Audun

Skrevet (endret)

Nummer to ser ut til å være det jeg letet etter. Men når det gjelder nummer en er jeg litt forvirret angående syntaksen. "(kolonne,1,1)" - hva innebærer det utrykket? I spørsmål nummer en er jeg spesielt interessert i hvordan man kan vise flere ting som begynner på flere bokstaver (fra samme rad), f.eks a, b, c, d på en side.

Endret av Radar911
Skrevet
2. SQL: SELECT * FROM tabell ORDER BY kolonne ASC LIMIT 10

 

Dette vil vise de eldste inleggene først.

 

Dersom du vil at de nye skal komme først, kan du prøve dette:

 SELECT * FROM tabell ORDER BY kolonne DESC LIMIT 10 

Skrevet

La inn noen test-titler i databasen:

 

ID----Title

6------Alien Vs Predator

7------All The President's Men

8------Copycat

9------Nixon

10---- Resident Evil: Apocalypse

11---- Shaun of the Dead

12---- Terminator 3

13---- The Italian Job

14---- The Mission

15---- Young Frankenstein

16---- Zatoichi

17---- 2 Fast 2 Furious

18---- Infernal Affairs

 

Og da fikk jeg følgende resultat på websiden:

2 Fast 2 Furious

Alien Vs Predator

All The President's Men

Copycat

Infernal Affairs

Nixon

Resident Evil: Apocalypse

Shaun of the Dead

Terminator 3

The Green Mile

 

Vet ikke helt hvordan SQL tenker her, men jeg vil ha titlene til de 10 høyeste ID'en visst (altså alle ID'ene fra 9 og oppover i dette eksemplet, ID'ene vil såklart variere ettersom nye verdier blir lagt til).

Skrevet
Vet ikke helt hvordan SQL tenker her, men jeg vil ha titlene til de 10 høyeste ID'en visst (altså alle ID'ene fra 9 og oppover i dette eksemplet, ID'ene vil såklart variere ettersom nye verdier blir lagt til).

Nå har ikke jeg peiling på SQL, men listen ser ut til å være alfabetisk ordnet.

 

Gjetter på at du må sortere etter kolonne "ID" og ikke etter kolonne "Title" ettersom "Title" neppe inneholder info om alder/tidspunkt/rekkefølge for innleggingen

Skrevet (endret)

Ja, funker nå. :yes: Men vet fremdeles ikke hvordan man viser flere bokstaver av en kolonne (eks: titler som begynner med a, b, c, og d)?

Endret av Radar911
Skrevet

Jeg er ikke helt stø i mysql-spørringer, men så vidt jeg vet går det an med AND/OR... Det må vel være mulig å bruke det. Så du kan hente ut rader der en viss kolonne begynner på a, eller der kolonnen begynner på b, eller der kolonnen begynner på c og så videre... Det bør vel være mulig ;)

Skrevet

Også lurer jeg på om det går an å vise de 10 siste innleggene fra en database som har en primærnøkkel med auto_increment?

 

$sp_spørring = mysql_query("SELECT felt, felt2, felt3 FROM tabell ORDER BY id DESC limit 10;");

Skrevet (endret)
$sp_spørring = mysql_query("SELECT felt, felt2, felt3 FROM tabell ORDER BY id DESC limit 10;");

Ser at du har slengt inn et semikolon for mye ;) det under er riktig

 

$sp_spørring = mysql_query("SELECT felt, felt2, felt3 FROM tabell ORDER BY id DESC limit 10");

Endret av thomas_c24
Skrevet (endret)

Hva er semantikken bak dette utrykket, SELECT * FROM tabell WHERE SUBSTRING(kolonne,1,1) = "a" - og kan man bruke det til å velge titler som begynner på flere bokstaver enn bare en?

Endret av Radar911
Skrevet
Hva er semantikken bak dette utrykket, SELECT * FROM tabell WHERE SUBSTRING(kolonne,1,1) = "a" - og kan man bruke det til å velge titler som begynner på flere bokstaver enn bare en?

Betyr ganske enkelt at alle rader hvor bokstaven "a" finnes i stringen mellom bokstav 1 og 1 skal skrives ut.

Jeg har aldri brukt det selv, men logikken tilsier at det er betydningen. Om du da vil ha alt som begynner på "ab", så skriver du:

SUBSTRING(kolonne,1,2) = "ab"

istedet...

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...