Avatar billede codebase Praktikant
19. november 2008 - 20:25 Der er 9 kommentarer og
1 løsning

update where text like statment

Hejsa

er der en klog person der kan hjaelpe mig med denne her request!

jeg onsker at söge og erstatte dele af teksten i databasen, säledes at jeg kun önsker at aendre delelementer af indholdet i recorden.

eks.

record 1
"olsen banden ser rödt"
önskes ändret til:
"olsen banden sä rödt"

Säledes at en sögning pä order "ser" udskiftes med ordet "sä"


Jeg ved godt hvordan jeg kan söge min records frem, men ved ikke hvordan jeg opdater säledes at der kun udskiftes et enkelt ord i sätningen.

(SELECT * FROM TABLE WHERE TEKST LIKE '%ser%';)

Anyone?
Avatar billede arne_v Ekspert
19. november 2008 - 20:33 #1
UPDATE tabel
SET tekst = REPLACE(tekst, ' ser ', ' sa ')

vil kunne erstatte hele ord som ikke er foerst eller sidst.
Avatar billede arne_v Ekspert
19. november 2008 - 20:36 #2
Hvis det ikke skal vaere hele ord, saa fjerner du bare de 4 mellemrum.

Hvis du skal have start og slut med saa:

UPDATE tabel
SET tekst = SUBSTR(REPLACE(' ' || tekst || ' ', ' ser ', ' sa '), 2, LENGTH(tekst))
Avatar billede codebase Praktikant
19. november 2008 - 20:45 #3
hvad med "Ser jeg dig ikke igen" --> "Sä jeg dig ikke igen"

jeg er ikke helt med pä den sidste sql query:
SET tekst = SUBSTR(REPLACE(' ' || tekst || ' ', ' ser ', ' sa '), 2, LENGTH(tekst))
Avatar billede codebase Praktikant
19. november 2008 - 20:47 #4
og kan jeg fyre den af pä mere end en tabel af gangen?

UPDATE tabel1,table2
SET tekst = .....

?
Avatar billede arne_v Ekspert
19. november 2008 - 20:53 #5
UPDATE tabel
SET tekst = REPLACE(tekst, ' ser ', ' sa ')

virker ikke paa foerste og sidste ord, fordi der mangler et mellemrum - det lan loeses med:

SET tekst = SUBSTR(REPLACE(' ' || tekst || ' ', ' ser ', ' sa '), 2, LENGTH(tekst))

som basalt set klisterer et mellemrum foerst og sidst, laver replace og saa
fjerner den mellemrum igen.
Avatar billede arne_v Ekspert
19. november 2008 - 20:57 #6
Nej. Du kan ikke udfoere en UPDATE paa flere tabeller. Men du kan lave en SP som
udfoerer en UPDATE paa alle tabeller - og saa kalde den.
Avatar billede codebase Praktikant
19. november 2008 - 20:59 #7
Tak, jeg leger med det!

... du snakker dort for mig, när du siger "lave en SP"

kast et svar ;)
Avatar billede codebase Praktikant
19. november 2008 - 20:59 #8
dort = sort :-)
Avatar billede arne_v Ekspert
19. november 2008 - 21:01 #9
SP = stored procedure
Avatar billede codebase Praktikant
19. november 2008 - 21:08 #10
Tak!
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

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