Avatar billede DTP Novice
20. juni 2005 - 17:45 Der er 18 kommentarer og
1 løsning

indsætte/tilføje værdi UDEN at overskrive den oprindelige

Jeg har en tabel STEDER hvor jeg har en kolonne STID og en kolonne FLAG, jeg har allerede nogle værdier i FLAG og STID.
jeg vil gerne indsætte værdien "P" i kolonnen FLAG hvor kolonnen STID < 1000  UDEN at overskrive de eksisterende værdier i kolonen FLAG.



troede jeg kunne skrive følgende :

update STEDER insert into STEDER(FLAG) values "P" where STID<1000

men læste herinde at insert into  kun bruges til at tilføje rækker    ??!!!
Avatar billede jokkejensen Novice
20. juni 2005 - 17:47 #1
update steder set flag = 'p' where stid<1000 <- den opdaterer alle rækker med stid under 1000 til p... men overskriver den gamle værdi ?
Avatar billede arne_v Ekspert
20. juni 2005 - 17:49 #2
UPDATE steder SET flag='P' WHERE flag IS NULL AND stid < 1000

eller

UPDATE steder SET flag=CONCAT(flag,'P') WHERE stid < 1000

eller  noget helt tredie (jeg er ikke siker på at jeg forstår hvad du vil)
Avatar billede DTP Novice
20. juni 2005 - 17:53 #3
øhh ja (men er ikke helt sikker da jeg desværre ikke kan få hands on på det før imorgen tidlig) men håber der er nogen der med SIKKERHED kan fortælle mig hvad jeg skal skrive for IKKE at overskrive den i forvejen værdi, og bare TILFØJE "P" til værdien  F.eks  FLAG VÆRDI = KLU efter tilføj "P"  : FLAG VÆRDI = PKLU (eller KLUP, det er ligemeget hvor "P" står i værdien).
Avatar billede DTP Novice
20. juni 2005 - 17:54 #4
det var til jokke
Avatar billede DTP Novice
20. juni 2005 - 17:55 #5
det er jeg ked af Arne, prøver at udtrykke mig så klart som muligt.
Avatar billede arne_v Ekspert
20. juni 2005 - 18:06 #6
Hvis du vil tilføje P så er det nok:

UPDATE steder SET flag=CONCAT(flag,'P') WHERE stid < 1000

du skal prøve !
Avatar billede DTP Novice
20. juni 2005 - 18:06 #7
har lige researchet lidt og fundet ud af hvis jeg bruger set kommandoen (set flag = 'P'  så OVERSKRIVER den den eksisterende værdi..... jokke se evt.  http://www.w3schools.com/sql/sql_update.asp    nedereste eksempel.
Avatar billede DTP Novice
20. juni 2005 - 18:13 #8
så CONCAT gør at det 'P' bliver tilføjet UDEN at overskrive den eksisterende værdi ??

Ja Arne ed det, men kan desværre ikke komme til at prøve det af før imorgen tidligt, så teoretisk indtil videre  :) (derfor også den lidt høje pointuddeling)
Avatar billede arne_v Ekspert
20. juni 2005 - 18:19 #9
CONCAT('KLU','P') giver 'KLUP'
Avatar billede jokkejensen Novice
20. juni 2005 - 18:22 #10
ja jeg forstod det ikke rigtigt... concat samler dem..
Avatar billede DTP Novice
20. juni 2005 - 18:23 #11
ok kører den imorgen,og så må der vel være point til dig arne (forhåbentlig hehe)
Avatar billede arne_v Ekspert
20. juni 2005 - 21:45 #12
jeg smider et svar såfrem CONCAT er løsningen
Avatar billede DTP Novice
21. juni 2005 - 12:18 #13
hmm det virker ikke, den brokker sig over at den ikke forstår kommandoen concat.

Tror jeg har lavet en brøler, hjælper det hvis jeg fortæller at jeg bruger SYBASE ??!
Avatar billede arne_v Ekspert
21. juni 2005 - 12:35 #14
ja !!!
Avatar billede arne_v Ekspert
21. juni 2005 - 12:35 #15
så prøver du:

UPDATE steder SET flag=flag+'P' WHERE stid < 1000
Avatar billede arne_v Ekspert
21. juni 2005 - 12:36 #16
sybase og mysql er 2 forskellige databaser med 2 forskellige syntaxer
Avatar billede arne_v Ekspert
23. juni 2005 - 10:54 #17
downtown ?
Avatar billede DTP Novice
29. juni 2005 - 12:41 #18
hov kan se at min kommentar ikke er her, skrev den ellers for en uge siden. nårh men pyt...arne kan fortælle dig at det virkede, derfor venligst post et svar så jeg kan give dig point  :)
Avatar billede arne_v Ekspert
29. juni 2005 - 12:42 #19
svar kommer her
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