|
| 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 (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
| |
|
|