Spalte mit Pfadangaben umschreiben und Inhalt in neue Spalte einfügen.

gutschy

Aktiver Benutzer
Beiträge
32
Hallo Leute,

ich habe in einer Tabelle eine Spalte mit Pfandangaben, die sind immer zweiteilig.

speika-rhein-valentino/Pizzeria-Valentino-05971-99blub

Gibt es einen SQL Weg den ersten Teil des Pfades in eine neue Spalte zu kopieren? Ich kann die Tabelle auch in Python einlesen und dort bearbeiten, aber frag erstmal hier. :)

Es gibt wohl eine Lösung für MSSQL und auch eine für Qracle.
http://www.cosmiq.de/qa/show/6833/SQL-Wie-kann-ich-einen-Pfad-fuer-alle-Eintraege-aendern/

MySQL habe ich nichts gefunden.

Gruss,

Gutschy
 
Werbung:
Gibt es einen SQL Weg den ersten Teil des Pfades in eine neue Spalte zu kopieren? Ich kann die Tabelle auch in Python einlesen und dort bearbeiten, aber frag erstmal hier. :)

Es gibt wohl eine Lösung für MSSQL und auch eine für Qracle.
http://www.cosmiq.de/qa/show/6833/SQL-Wie-kann-ich-einen-Pfad-fuer-alle-Eintraege-aendern/

MySQL habe ich nichts gefunden.

Gruss,

Gutschy

Naja, MySQL ist halt behindert. Für PG könnt ich das auch schnell aus dem Ärmel schütteln. Oder halt einen funktionalen Index setzen, vermutlich brauchst Du da keine redundante Spalte, sondern willst nur suchen, oder? Schau Dir mal an, was MySQL so an Stringfunktionen hat, möglicherweise kann man da auch was hinfrickeln, ich denk mal, MySQL ist zwar schlecht, aber soooo schlecht dann doch wohl nicht, als daß es keinen String an einem bestimmten Zeichen teilen könnte.
 
Na ja,
nur weil man die String-Funktionen nicht kennt ist MySQL nun nicht behindert.

so gehts:
Mit SUBSTRING_INDEX. Bei 1,2,3,.. trennt er von links und bei negativen Zahlen -1,-2,... von rechts.

Code:
SELECT SUBSTRING_INDEX("speika-rhein-valentino/Pizzeria-Valentino-05971-99blub",'/',1);


UPDATE TABELLE SET FELD = SUBSTRING_INDEX(FELD,'/',1);

Tausche nur TABELLE und FELD gegen deine Werte aus. Eventuell noch ein WHERE, aber das wars.

Gruss

Bernd
 
Werbung:
Hi Berndb,

super vielen Dank für deine Hilfe. Einfach zu begreifen wie es geht. Und ich habe es auch im dritten Versuch hinbekommen. ;)
 
Zurück
Oben