URL: https://www.overclockers.at/coding-stuff/mysql_gt_in_table_bestimmten_ausdruck_immer_ersetz_141416/page_1 - zur Vollversion wechseln!
hi !
gleich vorweg ich kenne micht mit sql nicht/kaum aus und brauche es normalerweise auch nicht. bei der übersiedlung meines weblogs bin ich aber auf ein problem gestossen, dass wohl kleine sql kenntnisse benötigt. bei bildern, die ich auf der seite eingebunden habe, haben sich durch den serverwechsel die pfade geändert. statt /bla/uploads/pic1.jpg ist es nun /bli/uploads/pic1.jpg. Ich will nun diesen pfad nicht für jeden eintrag händisch ändern. gibt es eine möglichkeit table-weit einen ausdruck durch einen anderen zu ersetzen ?
es gibt auch ein interface für die DB, aber wie gesagt, ich blicke da nicht durch und für das eine mal will ich mir das nicht anschauen.
dafür bin ich für jede hilfe furchtbar dankbar
jo, also ohne Regexp wirst da alt ausschaun, und ich wüsste nicht dass das [edit]direkt in mysql[/edit] ginge... kannst nicht einfach nen symlink setzen? sollte weniger probleme machen
Das müsste ca. so gehen:
Code:update tabelle set feld = replace(feld, '/bla/uploads', '/bli/uploads')
um die uhrzeit ist mir das genau zu durchdenken etwas zu nervig
vielleicht gehts ueber die standard stringfunktionen innerhalb eines updates - keine ahnung wie weit man hier ohne subselects innerhalb von mysql kommt
aber maybe geht etwas in der art
update table set filename=INSERT(filename,1,3,bli)
hab mich um ehrlich zu sein schon laenger nicht mehr mit mysql beschaeftigt
grundsaetzlich wuerde ich keine absoluten pfade in einer db speichern
sofern oberes geht hilft dir auch SUBSTRING_INDEX und CONCAT weiter
edit: der schon wieder
replaced der nicht nur ein vorkommen? bilde mir sowas in der art einZitat von thatDas müsste ca. so gehen:Code:update tabelle set feld = replace(feld, '/bla/uploads', '/bli/uploads')
ja, jetztCode:update tabelle set feld = replace(feld, '/bla/uploads', '/bli/uploads') LIMIT 1
ich meine natürlich pro Feld
bahnhof
vorhanden ist my1Admin und wenns viel arbeit ist werd ichs wohl anders machen
Als einfaches Tool kann ich euch MySQL-Front ans Herz legen. Damit lassen sich SQL-Datenbanken gut manipulieren. Allerdings ist die momentan verfügbare Version 3.x kostenpflichtig bzw. es gibt eine Testversion. Ich hab Version 2.5, die war noch Freeware.
3.x ist außerdem dermaßen instabil, dass es völlig unbrauchbar ist.
Glaub ich gern, ich glaub da entwickelt jetzt ein anderes Team weiter... der ursprüngliche Autor hat schon lang nix mehr gemacht und das Projekt glaub ich abgegeben. Macht nix, never touch a running system, bin mit Version 2.5 zufrieden. Falls man übrigens mal die richtige Syntax eines SQL-Queries nicht kennt, kann man die entsprechende Operation durchführen und den Querystring dazu bewundern. War schon desöfteren hilfreich.Zitat von Ringding3.x ist außerdem dermaßen instabil, dass es völlig unbrauchbar ist.
also ich würd da nen ganz schäbigen workaround machen (hoff das mich keiner dafür killen will *g*)
---> export die db als file - saug dir das lokal zu dir (phpmyadmin macht meines wissens beides in einem möglich)
bei dir das ganze in nem brauchbaren Texteditor öffnen (Ultraedit z.B.)
replace all nach den gewünschten Kriterien --> abspeichern
db mit dem "neuen" file ersetzen, bzw alte db löschen und mit die "neue" einbauen...
hth
oder vielleicht gleich durch "" ersetzen und ab nun an nur noch relative pfade speichern
@medice: so hab ich es nun gemacht
@funka: es sind normalerweise eh relative pfade war ein missgeschick meinerseits, dass es in dem fall absolute waren
Zitat von taz@medice: so hab ich es nun gemacht
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025