Avatar billede krummel Juniormester
16. september 2007 - 20:20 Der er 9 kommentarer og
1 løsning

hente dele af records

Jeg har en kolonne "link" i en mysql db. Der er mange rækker
records'ne ser ud som disse:

lang=34.214&kort=654.343
lang=2.437&kort=54.638

dvs. antal cifre i kan variere fra række til række.

Jeg vil gerne kopiere alle de første tal (34.214 og 2.437) i hele kolonnen over i en anden kolonne "tal" og alle de sidste tal (654.343 og 54.638) over i kolonne "tal2" - hvordan ser sådan et script ud, så jeg ikke skal gøre det manuelt?
Avatar billede arne_v Ekspert
16. september 2007 - 20:28 #1
første tal:

UPDATE tabel SET tal=SUBSTRING(link,6,LOCATE('&',link)-6);
Avatar billede arne_v Ekspert
16. september 2007 - 20:30 #2
andet tal:

UPDATE tabel SET tal2=SUBSTRING(link,LOCATE('kort=',link)+5);
Avatar billede krummel Juniormester
16. september 2007 - 20:53 #3
Går du så ikke ud fra, at der er et konstant antal cifre fra række til række?

Kan man evt. lave noget med en between funktionsagtig noget?
Avatar billede arne_v Ekspert
16. september 2007 - 20:55 #4
Nej - de bør virke helt uafhængigt af antal tal.
Avatar billede krummel Juniormester
16. september 2007 - 21:13 #5
okay - kan du forklare hvad fx tallene 6 og -6 betyder i følgende:
UPDATE tabel SET tal=SUBSTRING(link,6,LOCATE('&',link)-6);
så jeg lige forstår hvad den gør
Avatar billede arne_v Ekspert
16. september 2007 - 21:53 #6
De gør at man springer over 'lang='.

Det første tal starter i position 6.
Avatar billede krummel Juniormester
16. september 2007 - 22:02 #7
ja det første tal gør at man springer frem til tegn nr. 6, men hvad gør:

LOCATE('&',link)-6

Den lokaliserer & og hvad gør -6 så? Er det længden du definerer?
Avatar billede arne_v Ekspert
16. september 2007 - 22:22 #8
Det tredie argument til SUBSTRING er antal tegn.

l a n g = 3 4 . 2 1  4  &  k  ...
1 2 3 4 5 6 7 8 0 10 11 12 13 ...

LOCATE('&',link) returnerer 12

for at få den rigtige længde trækker vi 6 fra (5 for 'lang=' og 1 for '&')
Avatar billede krummel Juniormester
16. september 2007 - 22:31 #9
arhh - nu faldt femøren - tak for forklaringen :-)

gav svar og få point
Avatar billede arne_v Ekspert
16. september 2007 - 22:37 #10
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester