SQL REPLACE: Nur ein mal pro Datensatz

THOMASBAUER.cc

Cadet 4th Year
Registriert
Aug. 2007
Beiträge
86
Hallo, ich möchte mit dem REPLACE Befehl ein Wort durch einen Link ersetzen.

Beispiel:
UPDATE x_content SET fulltext = REPLACE(fulltext, 'Vienna City Marathon', '<a href="laufen/vienna-city-marathon" title="Alle Informationen zum Vienna City Marathon">')

Allerdings soll pro Artikel (Datensatz) die Ersetzung maximal ein mal erfolgen. Gibt es da eine Möglichkeit, dass im Befehl zu ergänzen? Also wenn das Wort bzw. die Zeichenkette mehrmals vorkommt, dass sie nur beim ersten Mal ersetzt wird


LG
 
Erm, Anwendungscode gehört nicht in die Datenbank. Dann soll das Datum in eine XML /json/plaintext/ oder sogar als Link formatiert in RTF/doc/xyz. Und was dann?


stattdessen den Link zur Laufzeit von der Anwendung generieren. Evtl einen Frame drumrum für den anwendungsparser. Sagen wir {# #} um Urls, das ist eindeuti genug um Kollisionen mit dem tatsächlichen Text zu vermeiden.
 
  • Gefällt mir
Reaktionen: GroMag, burglar225 und mental.dIseASe
kannst dir auch in einem subselect die id jeweils eines artikelsatzes holen indem du darin nach dem artikel gruppierst, dann wie in deinem eröffnungspost das replace auf diese ids.

die id (fortlaufende nummer) musst du dazu dann mit einer gruppenfunktion selecten. z.b. max() dann hast du immer den neuesten satz am wickel
 
Ich würde @RalphS zustimmen: halte deine Daten sauber von solchem Krempel und mach das erst, wenn du die Daten anzeigst, auslieferst, zur Verfügung stellst.
 

Ähnliche Themen

T
Antworten
0
Aufrufe
1.299
Telespieler
T
Zurück
Oben