Avatar billede elskermad.dk Nybegynder
29. januar 2005 - 16:12 Der er 12 kommentarer og
1 løsning

fjerne del af tekst

hej eksperter!

jeg gemmer noget data (info om hvilke rækker i en anden tabel der skal bruges) i en kommasepereret tekst.

fx kan indholdet i en kolonne i en række se således ud:

432,542,43,76542,4

hvordan kan man så med en sql-sætning fx fjerne 542 eller 4 hvis jeg får behov for det?

på forhånd tak!
Avatar billede arne_v Ekspert
29. januar 2005 - 16:20 #1
MySQL SQL har funktioner til streng manipulation.

Se her http://dev.mysql.com/doc/mysql/en/string-functions.html
Avatar billede arne_v Ekspert
29. januar 2005 - 16:20 #2
Det er nok SUBSTRING og REPLACE der er mest brugbar for dig
Avatar billede arne_v Ekspert
29. januar 2005 - 16:21 #3
men men men

Brug lige 10 minutter på at overveje om det er smart at opbevare data på den måde !
Avatar billede cpufan Juniormester
29. januar 2005 - 16:24 #4
du skal først trække indholdet ud af db'en

så laver du en replace på indholdet

indhold = replace(indhold,",542,",",")
og så
updater du din db med det nye indhold

ovenstående virker kun under forudsætning af at din talrække i db'en starter med et komma, og at du når indsætter en ny talværdi, altid efterfølger denne med et komma.
Avatar billede elskermad.dk Nybegynder
29. januar 2005 - 16:29 #5
arne_v: vil du forklare mig hvordan de funktioner(?) virker... jeg kan kun insert, uploade, select og delete funktionerne(?) i mysql!

ville være ked af at skulle trække det ud af db'en for at kunne gøre det da det kommer til at kræve alt for mange serverkrafter
Avatar billede arne_v Ekspert
29. januar 2005 - 16:32 #6
F.eks.

UPDATE tabelnavn SET feltnavn = REPLACE(feltnavn,  ',542,',  ',')
Avatar billede elskermad.dk Nybegynder
29. januar 2005 - 16:36 #7
kan det gøres mere dynamisk da jeg som skrevet gemmer det uden kommaer først og sidst.

du skriver jeg skal overveje en anden måde at opbevare dataerne - nogen forslag?
Avatar billede arne_v Ekspert
29. januar 2005 - 16:38 #8
Hvis du kan beskrive præcist hvad du vil så kan det sikkert også laves
Avatar billede arne_v Ekspert
29. januar 2005 - 16:38 #9
Separate rækker for hvert tal !!!!
Avatar billede elskermad.dk Nybegynder
29. januar 2005 - 16:42 #10
det er lavet sådan at man kan tilføje billeder til et produkt.

altså der er en række med oplysninger omkring produktet.

så har jeg en tabel med oplysninger om alle billederne der er oploaded. jeg har så lavet en funktion der kan smide id'et for billedet ind i et felt i vare-tabellen så det fx kommer til at se sådan ud:

432,542,43,76542,4 (der høre så 5 billeder til varen)

nu har jeg så brug for at man skal kunne fjerne billederne fra varen igen. altså fjerne en id i feltet!

det kunne fx være id 432 eller 43 der skulle fjernes fra feltet så

bedre forklaret nu?
Avatar billede arne_v Ekspert
29. januar 2005 - 17:13 #11
Du laver en ny tabel med to kolonner:
  produktid
  billedid
og så laver du 5 rækker i den tabel.
Avatar billede elskermad.dk Nybegynder
31. januar 2005 - 22:49 #12
smid et svar arne
Avatar billede arne_v Ekspert
31. januar 2005 - 23:18 #13
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