Hey alle zusammen. Ich bin gerade dabei, eine längst fällige Überarbeitung und SEO Optimierung eines Shops vorzunehmen und merke schnell, dass ich bei manueller Anpassung bestimmter Bereich unendlich lange dafür brauchen werde. Deshalb meine Frage: Gibt es einen Befehl, um via SQL Query bestimmte Strings, bzw. Inhalte zu entfernen bzw. zu ersetzen? Es handelt sich um einen Shop mit Zuschnitten von Metallen und Kunststoffen. Dadurch sind viele der Titel identisch. Es unterscheiden sich manchmal nur der Durchmesser oder andere Eigenschaften. Nun möchte ich z.B. von ca. 500 Artikeln mit dem Titel: Messing Bleche CuZn37 MS 63 0,3mm Blechstärke 200 x 100mm den Teil "CuZn37 MS 63" entfernen/ersetzen. Per Hand ist das einfach etwas irre bei insgesamt über 3000 Produkten Zusammenfassung: 1. Diesen Befehl würde ich gerne anwenden auf das Löschen und das Ersetzen von: - Artikelname - Metatitel - Metabeschreibung - URL Keywords - Zusatzbegriffe für Suche Ich bin hier leider hoffnungslos überfragt und für jede Hilfe sehr dankbar. Den Beitrag unter Hilfreiche SQL Befehle habe ich bereits durchgesehen. Vielen Dank im Voraus! Flo
Moin Flo könnte das hier sein (erstmal für den Namen): Code: UPDATE products_description SET products_name = "Messing Bleche 0,3mm Blechstärke 200 x 100mm" WHERE products_name = "Messing Bleche CuZn37 MS 63 0,3mm Blechstärke 200 x 100mm" Allerdings OHNE Garantie; vorher DB sichern und am besten im Testshop testen!
Hallo Flo, SQL ist ein tolles und mächtiges Werkzeug und in der IT ein EIGENES Arbeitsgebiet, da man damit ohne ein gewisses Know How schnell umfangreiche Fehler machen kann... U.a. kann man sich auch ganz schnell die Datenbank inhaltlich oder technisch zerschießen kann....das nur vorab... Ich setze zwei unterschiedliche SQL-Befehle für Updates ein: 1.) Einen Update, der den jeweiligen alten Text KOMPLETT durch einen neuen Text ERSETZT 2.) Einen Update, der einzelne oder mehrere Wörter in einem Text GEZIELT WORTWEISE ersetzt. Das ist vorallem dann interessant, wenn man z.B. nur einen häufigen Schreibfehler korrigieren möchte oder gezielt nur ein EINZELNES Wort ERSETZEN möchte, der andere vorhandene Text jedoch unberührt bleiben soll Was möchtest du denn genau machen?: Die o.g. Spalten textlich KOMPLETT aktualisieren - was Punkt a) entspricht - oder ggf. nur WORTWEISE aktualisieren - was Punkt b) entspricht - Grüße Klaus
@metanerd Für den Punkt a) zur Spalte products_name kannst du den o.g. Update-Befehl einsetzen. Ich denke aber, dass der Tabellename products_description noch korrekterweise in diese schräge Hochkommas gesetzt werden muss: `products_description` ....ist zumindest bei mir so.... Habe daher mal das o.g. Beispiel entspr. angepasst und optisch auch etwas eingerückt, dann ist es leichter zu lesen und zu schreiben und auch wichtig...leichter VOR der Ausführung optisch zu kontrollieren: UPDATE `products_description` SET products_name = "Messing Bleche 0,3mm Blechstärke 200 x 100mm" WHERE products_name = "Messing Bleche CuZn37 MS 63 0,3mm Blechstärke 200 x 100mm"
Wie auch schon oben gesagt wurde, solltest du dir bevor mit SQL anfängst du arbeiten, das TOOL MySQLDUMPER holen, mit dem du vor (größeren) Updates Datenbank-Backups durchführen kannst und falls ein Update (richtig) schief ging, das Backup wieder einspielen kannst. a) Falls dein Webspace noch mit einer PHP Version 5.x läuft ist für dich der 'originale' MySQLDUMPER der Richtige. b) Falls dein Webspace bereits mit einer PHP Version 7.x läuft ist für dich der 'Nachfolger' der Richtige: MYOOSDUMPER Beide DUMPER kannst du dir hier über diesen Beitrag mit seinen Download-Links downloaden: (Link nur für registrierte Nutzer sichtbar.)
Ich glaube dafür würde ich eher die Daten per csv runterladen, mit libreOffice öffnen und bearbeiten und dann wieder hochladen. Vor dem Hochladen sollte man aber auch eine Datenbanksicherung durchführen.
Vielen lieben Dank für eure hilfreichen Antworten. Ich habe mich nun dazu entschieden, erstmal an einem Datenbank Backup zu versuchen, bevor ich an die Live-Version gehe. Bezüglich: ist in meinem Fall eher Punkt 2.), also das ersetzen bzw. entfernen bestimmter Worte wichtiger. Ich habe eben versucht einen Schreibfehler wie er z.B. hier vorkommt: Rundrohr MS58 CuZn39Pb3 80x5 mm, Aussen Durchmesser 80mm Wandstärke 5mm, Zuschnitt Durch den Befehl UPDATE products_description SET products_name = "Außendurchmesser" WHERE products_name = "Aussen Durchmesser" bei mehreren hundert Artikeln zu korrigieren, allerdings kommt bereits bei der Simulation der Query eine 0-Treffer Meldung. Muss man hier dann gezielt den genauen textlichen Inhalt des fehlerhaften Titels angeben? Kann man nicht nach bestimmten Begriffen in allen Titeln gleichzeitig suchen und korrigieren lassen? Vielen Dank für eure Geduld und Hilfe! Schöne Grüße, Flo
Das scheint wohl eine, für Laien wie mich, bessere Lösung zu sein. Werde ich zeitgleich auch mal versuchen.
Selbst ich, der bereits vorher jahrelange berufliche Erfahrung mit SQL gesammelt hatte, habe die ersten Monate meinen Shop nur per CSV-Dateien gepflegt... Denn der große Vorteil dabei ist, dass wenn man sich seine Artikel in einer CSV-Datei anschaut, dass man nebenbei viele andere kleine und große Fehler in seinen Artikel-Daten entdeckt, mit denen man gar nicht gerechnet hat... ;-) Und man lernt (in Ruhe) die ganzen (Tabellen-)Spaltennamen kennen, die man sie auch später bei etwaigen SQL-Befehlen kennen muss, damit ein SQL-Befehl fehlerfrei ausgeführt werden kann...