SQL-Funktion - aus einer Spalte zwei machen
Patrick Schröder
- datenbank
0 Ilja0 Patrick Schröder0 dedlfix0 Ilja
Hallöchen...
Okay, über die Richtigkeit der Überschrift, kann man geteilter Meinung sein... aber verständlicher fällt mir grad keine andere Überschrift ein...
Ich hänge derzeit an folgender Aufgabenstellung:
Stellt euch vor, ich habe eine Spalte (link) mit Inhalten wie z.B. 1.1 , 1.2 , 1.3 . 2.5 etc.
diese möchte ich nach Möglichkeit mit ein oder zwei SQL-Befehlen austauschen, ohne dafür ein PHP-Script benutzen zu müssen (soll also in phpMyAdmin umgesetzt werden)
Nun füge ich zwei Spalten hinzu: cat & pos.
der Inhalt aus link soll nun in die beiden neuen Spalten eingefügt werden, Trennungsmöglichkeit ist der Punkt. Aber da ich ja ohne Script auskommen möchte, fällt explode() weg.
Meine SQL-Funktion funktioniert für die cat-Spalte astrein... nur wie bekomme ich die Zahl nach dem Punkt in pos gepostet?
/* ------- */
$sql = "UPDATE tblNavigationLinks
SET cat
= tblNavigationLinks.link, pos
= tblNavigationLinks.link WHERE link LIKE '%.%'";
/* ------- */
das Update für cat funktioniert einwandfrei, weil es sich bei link um varchar handelt, bei cat & pos um int(2) und somit der .* aus link einfach abgeschnitten wird... ist zwar nicht soo sauber, reicht aber für diese Einmal-Prozedur völlig aus.
Hat jemand nen Tip? Ich bin im Bezug auf verschachtelte Abfragen noch relativ am Anfang. Die Umsetzung kann sich auch durchaus auf zwei, oder drei Funktionen erweitern.
Durch meine Referenzen steige ich in dieser Hinsicht irgendwie nicht mehr durch...
Gruß Patrick
yo,
Hat jemand nen Tip?
klickste http://dev.mysql.com/doc/mysql/en/string-functions.html und schauchste LEFT() & RIGHT() ....
Ilja
Hi Ilja,
auch wenn ich grad etwas suchen musste und kaum mit meinem Englisch klarkam, es hat geholfen und es funzt!
Vielen herzlichen Dank!
LG Patrick
klickste http://dev.mysql.com/doc/mysql/en/string-functions.html und schauchste LEFT() & RIGHT() ....
Hmm, ich hätte da ja jetzt eher SUBSTRING_INDEX(Feld, '.', 1) und ... -1) verwendet...
yo,
Hmm, ich hätte da ja jetzt eher SUBSTRING_INDEX(Feld, '.', 1) und ... -1) verwendet...
auch eine gute möglichkeit, bekanntlich führen viele weg nach rom.
Ilja