/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
mysql: stigende tal i en kolonne?
Fra : Christian Liljedahl


Dato : 01-10-02 21:53

Hejsa

Jeg vil gerne lave en select, som genererer en stigende talrække ... men jeg
kan ikke finde funktionen at gøre det med...
select @num:= @num + 1 as row_number, fornavn, efternavn where ...

virker ikke som jeg ønsker.
Jeg vil gerne have:

row_number | fornavn | efternavn
1 | Hans | Jensen
2 | Oles | Andersen
3 | Peter | Svendsen

Kan nogle hjælpe?

Med venlig hilsen
Christian Liljedahl



 
 
Niels Andersen (01-10-2002)
Kommentar
Fra : Niels Andersen


Dato : 01-10-02 22:59

Christian Liljedahl wrote in <and1tg$2sc$1@sunsite.dk>:
> row_number | fornavn | efternavn
> 1 | Hans | Jensen
> 2 | Oles | Andersen
> 3 | Peter | Svendsen

Feltet "row_number" (som jeg plejer at kalde "id") skal være primary key. Så
sætter du "auto_increment" på feltet, og så er du køreklar.

Når du indsætter lader du bare være med at angive værdi til det felt, så
tager den selv det næste nummer.

--
Mvh.

Niels Andersen
(la nels. anersyn.)

Mads Lie Jensen (02-10-2002)
Kommentar
Fra : Mads Lie Jensen


Dato : 02-10-02 09:06

On Tue, 1 Oct 2002 22:53:09 +0200, "Christian Liljedahl"
<chrlilje@kfumscout.dk.dk> wrote:

>Jeg vil gerne lave en select, som genererer en stigende talrække ... men jeg
>kan ikke finde funktionen at gøre det med...
>select @num:= @num + 1 as row_number, fornavn, efternavn where ...
>
>virker ikke som jeg ønsker.

Det er fordi @num som standard har værdien NULL, og NULL + 1 er stadig
NULL
Prøv at køre en 'SELECT @num:=0;' lige inden din query ovenfor.

--
Mads Lie Jensen - mads@gartneriet.dk - ICQ #25478403
http://www.gartneriet.dk
- nu med link til egne billeder fra Aero-koncerten
med Jean Michel Jarre

Christian Liljedahl (02-10-2002)
Kommentar
Fra : Christian Liljedahl


Dato : 02-10-02 23:00

> Det er fordi @num som standard har værdien NULL, og NULL + 1 er stadig
> NULL
> Prøv at køre en 'SELECT @num:=0;' lige inden din query ovenfor.

Det var tricket - Mange tak

Med venlig hilsen
Christian Liljedahl



Kristian Damm Jensen (03-10-2002)
Kommentar
Fra : Kristian Damm Jensen


Dato : 03-10-02 10:43

Christian Liljedahl wrote:
>
> Hejsa
>
> Jeg vil gerne lave en select, som genererer en stigende talrække ... men jeg
> kan ikke finde funktionen at gøre det med...
> select @num:= @num + 1 as row_number, fornavn, efternavn where ...
>
> virker ikke som jeg ønsker.
> Jeg vil gerne have:
>
> row_number | fornavn | efternavn
> 1 | Hans | Jensen
> 2 | Oles | Andersen
> 3 | Peter | Svendsen
>
> Kan nogle hjælpe?

Hvis du ikke har numrende i din database i forvejen (Niels' løsning) og
ønsker en standardløsning (i modstrid med Mads' løsning), så er det
korte svar nej.

Det lange er ... måske. Men du har ikke lyst til at se den kode, der
skal til for at få det til at spille. Auto-joins er ikke begynderkost,
og jeg har lige haft en længere diskussion i en anden tråd, der tydeligt
demonstrerede at selv rutinerede sql-kodere kan komme på glatis.


--
Kristian Damm Jensen | Feed the hungry at www.thehungersite.com
kristian-damm.jensen@cgey.com | Two wrongs doesn't make a right,
ICQ# 146728724 | but three lefts do.


Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste