/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
MSSQL/MySQL - Replace?
Fra : Jimmy


Dato : 18-11-03 12:07

Hej

Jeg har et felt, som indeholder tekst og HTML.

Jeg skal erstatte 2002 med 2003 i alle felterne - men ønsker at bevare
feltets øvrige indhold intakt.

Jeg er ret sikker på det ikke kan lade sig gøre i ren SQL uden at man først
hiver ud,
modificerer og derefter sætter ind igen, men måske I har et forslag til
MSSQL og MySQL?

Mvh
Jimmy



 
 
Jens Gyldenkærne Cla~ (18-11-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 18-11-03 12:27

Jimmy skrev:

> Jeg skal erstatte 2002 med 2003 i alle felterne - men ønsker
> at bevare feltets øvrige indhold intakt.

I MSSQL:

UPDATE tabel
SET feltnavn = REPLACE(feltnavn, '2002', '2003')
WHERE feltnavn LIKE '%2002%'

Jeg ved ikke om mysql har en tilsvarende funktion.

Ovenstående vil ikke virke på text/ntext-felter - her skal du så
vidt jeg husker benytte UPDATETEXT.
--
Jens Gyldenkærne Clausen
»Diplomatiet består netop i, at de gamle kommatister kan få lov til
at tro, at de har vundet. Men i virkeligheden har de tabt.«
Ole Togeby i Information

Jimmy (18-11-2003)
Kommentar
Fra : Jimmy


Dato : 18-11-03 14:33

"Jens Gyldenkærne Clausen" <jens@gyros.invalid> wrote in message
news:Xns94377E9F0C69Djcdmfdk@gyrosmod.cybercity.dk...
> Jimmy skrev:
>
> > Jeg skal erstatte 2002 med 2003 i alle felterne - men ønsker
> > at bevare feltets øvrige indhold intakt.
>
> I MSSQL:
>
> UPDATE tabel
> SET feltnavn = REPLACE(feltnavn, '2002', '2003')
> WHERE feltnavn LIKE '%2002%'
>
> Jeg ved ikke om mysql har en tilsvarende funktion.

Jo - Det kan faktisk cut'n'pastes.


> Ovenstående vil ikke virke på text/ntext-felter - her skal du så
> vidt jeg husker benytte UPDATETEXT.

Korrekt - Jeg har så præcis med et ntext felt at gøre og sidder og roder
rundt på google efter eksempler på at opdatere.

Jeg er kommet i retning af:

DECLARE @PtrVar BINARY(16)
DECLARE @foundtext char(1)

SELECT @PtrVar = TEXTPTR(Context)
FROM context
WHERE context LIKE '%2002%';

Dog kan jeg ikke få den SELECT til at udskrive noget i SQL Query Analyzer,
men det er nok meningen da den vel returnerer et array.
MSSQL er ikke noget jeg nogensinde har arbejdet med, så syntaksen er
temmeligt uvant for mig.

Tak for hjælpen,
Jimmy





Troels Arvin (18-11-2003)
Kommentar
Fra : Troels Arvin


Dato : 18-11-03 14:37

On Tue, 18 Nov 2003 12:26:50 +0100, Jens Gyldenkærne Clausen wrote:

> I MSSQL:
>
> UPDATE tabel
> SET feltnavn = REPLACE(feltnavn, '2002', '2003')
> WHERE feltnavn LIKE '%2002%'
>
> Jeg ved ikke om mysql har en tilsvarende funktion.

Det har den.

Der er dog en subtil forskel: MySQL arbejder case _sensitively_, hvor
MSSQL arbejder case _in_sensitively (som den eneste af dem, jeg har
undersøgt):

http://troels.arvin.dk/db/rdbms/#functions-REPLACE

--
Greetings from Troels Arvin, Copenhagen, Denmark


Kim Emax (18-11-2003)
Kommentar
Fra : Kim Emax


Dato : 18-11-03 17:32

Troels Arvin wrote:

> Det har den.

Og det er samme syntax som i eksemplet til MSSQL

> Der er dog en subtil forskel: MySQL arbejder case _sensitively_, hvor
> MSSQL arbejder case _in_sensitively (som den eneste af dem, jeg har
> undersøgt):

Hvis det er en MySQL4, min 3.23.49 var case insensitiv.

> http://troels.arvin.dk/db/rdbms/#functions-REPLACE

sikke farver, ellers lækkert lavet

--
Take Care
Kim Emax - master|minds: http://www.masterminds.dk
http://www.emax.dk - http://www.ayianapa.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks måske mest avancerede VinWebShop



Troels Arvin (18-11-2003)
Kommentar
Fra : Troels Arvin


Dato : 18-11-03 17:38

On Tue, 18 Nov 2003 17:31:56 +0100, Kim Emax wrote:

> Hvis det er en MySQL4, min 3.23.49 var case insensitiv.

Argh. OK.

>> http://troels.arvin.dk/db/rdbms/#functions-REPLACE
>
> sikke farver, ellers lækkert lavet



Farverne skyldes ønsket om dels ikke at være for hård ved printere og
dels at ville give hvert DBMS sin egen markering. Med de krav kan jeg ikke
finde på noget bedre end de eksisterende farver.

--
Greetings from Troels Arvin, Copenhagen, Denmark


Peter Lykkegaard (19-11-2003)
Kommentar
Fra : Peter Lykkegaard


Dato : 19-11-03 00:07

Troels Arvin wrote:
> On Tue, 18 Nov 2003 17:31:56 +0100, Kim Emax wrote:
>
>> Hvis det er en MySQL4, min 3.23.49 var case insensitiv.
>
> Argh. OK.
>
Og MSSQL kan sættes til arbejde case sensitive

- Peter




Troels Arvin (19-11-2003)
Kommentar
Fra : Troels Arvin


Dato : 19-11-03 00:11

On Wed, 19 Nov 2003 00:07:18 +0100, Peter Lykkegaard wrote:

> Og MSSQL kan sættes til arbejde case sensitive

Ekstra-argh. Nå. Jeg er egentlig mest interesseret i default-situationen,
men kan ikke lade være med at spørge: Hvordan får man den til at
arbejde i case sensitive tilstand?

- Der står intet om det i relevante manualafsnit:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_ra-rz_76lh.asp

--
Greetings from Troels Arvin, Copenhagen, Denmark


Peter Lykkegaard (19-11-2003)
Kommentar
Fra : Peter Lykkegaard


Dato : 19-11-03 08:42


"Troels Arvin" <troels@arvin.dk> wrote in message
news:pan.2003.11.18.23.10.39.969787@arvin.dk...
> On Wed, 19 Nov 2003 00:07:18 +0100, Peter Lykkegaard wrote:
>
> > Og MSSQL kan sættes til arbejde case sensitive
>
> Ekstra-argh. Nå. Jeg er egentlig mest interesseret i default-situationen,
> men kan ikke lade være med at spørge: Hvordan får man den til at
> arbejde i case sensitive tilstand?
>
> - Der står intet om det i relevante manualafsnit:
>
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tsqlref/ts_ra-rz_76lh.asp
>
Ahh, det skulle jeg måske have tilføjet

Man kan sætte sortorder (collation) på database og/eller tabelniveau - og
feltniveau (mssql 2000)
Derved bliver ex primary key etc case sensitive
Jeg har ikke selv prøvet det mht replace - men lur mig om ikke det også er
tilfældet her
- Peter



kim isaksen (19-11-2003)
Kommentar
Fra : kim isaksen


Dato : 19-11-03 13:30

"Troels Arvin" <troels@arvin.dk> wrote in message
news:pan.2003.11.18.16.37.39.223932@arvin.dk...
> On Tue, 18 Nov 2003 17:31:56 +0100, Kim Emax wrote:
>
> > Hvis det er en MySQL4, min 3.23.49 var case insensitiv.
>
> Argh. OK.
>
> >> http://troels.arvin.dk/db/rdbms/#functions-REPLACE
> >
> > sikke farver, ellers lækkert lavet
>
>
>
> Farverne skyldes ønsket om dels ikke at være for hård ved printere og
> dels at ville give hvert DBMS sin egen markering. Med de krav kan jeg ikke
> finde på noget bedre end de eksisterende farver.

Super side da jeg til dagligt roder med lige dele mSSql,mysql & oracle.
Takker og bukker for linket. :)

/iM



Søg
Reklame
Statistik
Spørgsmål : 177500
Tips : 31968
Nyheder : 719565
Indlæg : 6408518
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste