|
| MySQl - Nummerering i SELECT Fra : Jimmy |
Dato : 04-02-03 18:10 |
|
Hej
Jeg ønsker at lave en SELECT, der indeholder en variabel, der automatisk
adderes 1 til for hver gang jeg hiver en række ud.
F.eks. noget i stil med nedenstående tabel og dummy-SQL:
Dyr
----
Hund
Kat
Mus
SELECT *, Nummer FROM DYR
....skulle resultere i følgende:
1 Hund
2 Kat
3 Mus
Hvordan ville I gøre dette?
Mvh
Jimmy
| |
Kasper Christensen (11-02-2003)
| Kommentar Fra : Kasper Christensen |
Dato : 11-02-03 07:34 |
|
> Jeg ønsker at lave en SELECT, der indeholder en variabel, der automatisk
> adderes 1 til for hver gang jeg hiver en række ud.
>
> F.eks. noget i stil med nedenstående tabel og dummy-SQL:
>
>
> Dyr
> ----
> Hund
> Kat
> Mus
>
> SELECT *, Nummer FROM DYR
>
> ...skulle resultere i følgende:
>
> 1 Hund
> 2 Kat
> 3 Mus
>
> Hvordan ville I gøre dette?
Lav en celle der hedder nummer. Vælg derefter autonummerering.
Mvh
Kasper
| |
Jimmy (11-02-2003)
| Kommentar Fra : Jimmy |
Dato : 11-02-03 09:24 |
|
"Kasper Christensen" <news@kasperc.dk> wrote in message
news:b2a5gf$3q4$1@sunsite.dk...
> > Jeg ønsker at lave en SELECT, der indeholder en variabel, der automatisk
> > adderes 1 til for hver gang jeg hiver en række ud.
> >
> > Hvordan ville I gøre dette?
>
> Lav en celle der hedder nummer. Vælg derefter autonummerering.
Nej nej - så kan jeg jo ikke sortere på felterne og slette enkelte poster
eller udvælge enkelte
Det må være noget med en variabel i selve SELECT som man angiver skal
forøges ved hvert kald.
mvh
Jimmy
| |
Mads Lie Jensen (11-02-2003)
| Kommentar Fra : Mads Lie Jensen |
Dato : 11-02-03 18:17 |
|
On Tue, 11 Feb 2003 09:23:41 +0100, "Jimmy"
<nyhedsgruppe@get3_erstat_3_med_2_net.dk> wrote:
>Nej nej - så kan jeg jo ikke sortere på felterne og slette enkelte poster
>eller udvælge enkelte
>
>Det må være noget med en variabel i selve SELECT som man angiver skal
>forøges ved hvert kald.
Prøv at kigge på http://www.mysql.com/doc/en/Variables.html
--
Mads Lie Jensen - mads@gartneriet.dk - ICQ #25478403
http://www.gartneriet.dk
Lær af andres fejl
- du lever alligevel ikke længe nok til selv at prøve dem alle.
| |
Jesper Brunholm (12-02-2003)
| Kommentar Fra : Jesper Brunholm |
Dato : 12-02-03 09:13 |
|
Jimmy wrote:
> Jeg ønsker at lave en SELECT, der indeholder en variabel, der automatisk
> adderes 1 til for hver gang jeg hiver en række ud.
>
> F.eks. noget i stil med nedenstående tabel og dummy-SQL:
>
>
> Dyr
> ----
> Hund
> Kat
> Mus
>
> SELECT *, Nummer FROM DYR
>
> ...skulle resultere i følgende:
>
> 1 Hund
> 2 Kat
> 3 Mus
>
> Hvordan ville I gøre dette?
Direkte adspurgt ville mit svar være: ved at lave et autonummereret felt
til ID som jeg tog med ud hver gang, og sikrede mig kom i rækkefølge ved
at bruge ORDER BY.
Hvad er det du skal bruge det til?
Jeg er nødt til at spørge, jeg kan ikke helt se på dit indlæg hvor meget
du kan, og jeg vil nødig vejlede folk i at gå over åen for at hente vand
mvh
Jesper Brunholm
--
H.C. Andersen-Centret med nyt design: < http://www.andersen.sdu.dk/>
Phønix - dansk folk-musik fra unge musikere - < http://www.phonixfolk.dk/>
| |
Jakob Andersen (12-02-2003)
| Kommentar Fra : Jakob Andersen |
Dato : 12-02-03 21:26 |
|
"Jimmy" wrote
> Jeg ønsker at lave en SELECT, der indeholder en variabel, der automatisk
> adderes 1 til for hver gang jeg hiver en række ud.
SET @i = 0;
SELECT <feltliste>, @i:=(@i+1) FROM <tabel>;
--
Jakob Andersen
| |
Jimmy (18-02-2003)
| Kommentar Fra : Jimmy |
Dato : 18-02-03 23:15 |
|
"Jakob Andersen" <jakob@effectus.dk> wrote in message
news:b2eafr$2hqi$1@news.cybercity.dk...
> "Jimmy" wrote
> > Jeg ønsker at lave en SELECT, der indeholder en variabel, der automatisk
> > adderes 1 til for hver gang jeg hiver en række ud.
>
> SET @i = 0;
> SELECT <feltliste>, @i:=(@i+1) FROM <tabel>;
Interessant ide.
Dog returnerer den 0 rækker.
Hvis jeg ikke angiver SET @i = 0; returneres alle raekker i tabellen, men så
er de ikke nummererede.
Var det et eksempel du fandt på mysql.com?
Mvh
Jimmy
| |
Jakob Andersen (23-02-2003)
| Kommentar Fra : Jakob Andersen |
Dato : 23-02-03 16:25 |
|
"Jimmy" <nyhedsgruppe@get3_erstat_3_med_2_net.dk> wrote
> "Jakob Andersen" wrote
> > SET @i = 0;
> > SELECT <feltliste>, @i:=(@i+1) FROM <tabel>;
>
> Interessant ide.
> Dog returnerer den 0 rækker.
> Hvis jeg ikke angiver SET @i = 0; returneres alle raekker i tabellen, men
så
> er de ikke nummererede.
Hmmm... Den virker fint for mig, prøv at se nedenstående sakset direkte fra
min mysql prompt:
mysql> SET @i = 0;SELECT id, navn, @i := (@i + 1) FROM minTabel ORDER BY
navn;
Query OK, 0 rows affected (0.01 sec)
+----+-------------------+----------------+
| id | navn | @i := (@i + 1) |
+----+-------------------+----------------+
| 1 | Databaser | 1 |
| 5 | Dato,valuta,sprog | 2 |
| 6 | Email | 3 |
| 2 | Filsystemet | 4 |
| 4 | Forms | 5 |
| 7 | Generelt | 6 |
| 3 | Komponenter | 7 |
| 11 | Sikkerhed | 8 |
| 10 | Sockets | 9 |
| 9 | SQL | 10 |
| 8 | XML | 11 |
+----+-------------------+----------------+
11 rows in set (0.01 sec)
> Var det et eksempel du fandt på mysql.com?
Øhh... Nej, ikke lige umiddelbart. Men der er nogle eksempler i samme stil
på siden som Mads henviste til:
< http://www.mysql.com/doc/en/Variables.html>
--
Jakob Andersen
| |
Jimmy (23-02-2003)
| Kommentar Fra : Jimmy |
Dato : 23-02-03 16:37 |
|
"Jakob Andersen" <jakob@effectus.dk> wrote in message
news:b3ap29$23nk$1@news.cybercity.dk...
> "Jimmy" <nyhedsgruppe@get3_erstat_3_med_2_net.dk> wrote
> > "Jakob Andersen" wrote
> > > SET @i = 0;
> > > SELECT <feltliste>, @i:=(@i+1) FROM <tabel>;
> >
> > Interessant ide.
> > Dog returnerer den 0 rækker.
> > Hvis jeg ikke angiver SET @i = 0; returneres alle raekker i tabellen,
men
> så
> > er de ikke nummererede.
>
> Hmmm... Den virker fint for mig, prøv at se nedenstående sakset direkte
fra
> min mysql prompt:
>
> mysql> SET @i = 0;SELECT id, navn, @i := (@i + 1) FROM minTabel ORDER BY
> navn;
> Query OK, 0 rows affected (0.01 sec)
Virkeligt mærkeligt.
Jeg har ikke en prompt ved hånden og anvender phpmyadmin.
Det mærkelige er, at når jeg udelader SET @i = 0; returneres alle rækker,
men nummereringen er NULL i alle sammen.
Inkluderer jeg SET @i = 0; returneres 0 rækker.
Men tak for hjælpen,
jeg må nok rode lidt mere med det.
mvh
Jimmy
| |
Jakob Andersen (23-02-2003)
| Kommentar Fra : Jakob Andersen |
Dato : 23-02-03 17:26 |
|
"Jimmy" wrote
> Jeg har ikke en prompt ved hånden og anvender phpmyadmin.
Hvis du har adgang til serveren udefra kan jeg anbefale dig at kigge på:
< http://www.dbtools.com.br/>
Som er et efter min mening noget "venligere" interface end phpMyAdmin. Heri
kan jeg også køre den omtalte forespørgsel og få det ønskede resultat.
--
Jakob Andersen
| |
Mads Lie Jensen (23-02-2003)
| Kommentar Fra : Mads Lie Jensen |
Dato : 23-02-03 17:40 |
|
On Sun, 23 Feb 2003 16:37:02 +0100, "Jimmy"
<nyhedsgruppe@get3_erstat_3_med_2_net.dk> wrote:
>Virkeligt mærkeligt.
>Jeg har ikke en prompt ved hånden og anvender phpmyadmin.
Det er nok en fejl/mangel/whatever i phpmyadmin som gør det.
>Det mærkelige er, at når jeg udelader SET @i = 0; returneres alle rækker,
>men nummereringen er NULL i alle sammen.
>Inkluderer jeg SET @i = 0; returneres 0 rækker.
Hvis ikke du kører SET @i=0; først, så vil @i være NULL - og NULL +1 er
stadig NULL.
--
Mads Lie Jensen - mads@gartneriet.dk - ICQ #25478403
http://www.gartneriet.dk
Lær af andres fejl
- du lever alligevel ikke længe nok til selv at prøve dem alle.
| |
|
|