SQL Befehle zur Anpassung der Artikel- & Kategorienamen gesucht.

Thema wurde von metanerd, 22. März 2017 erstellt.

  1. metanerd

    metanerd Mitglied

    Registriert seit:
    27. Juli 2012
    Beiträge:
    6
    Danke erhalten:
    0
    Danke vergeben:
    9
    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
     
  2. Anonymous

    Anonymous G-WARD 2015/2016

    Registriert seit:
    20. Februar 2012
    Beiträge:
    8.755
    Danke erhalten:
    1.516
    Danke vergeben:
    1.051
    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!
     
  3. MrFab16.4

    MrFab16.4 Erfahrener Benutzer

    Registriert seit:
    22. April 2015
    Beiträge:
    397
    Danke erhalten:
    39
    Danke vergeben:
    83
    #3 MrFab16.4, 22. März 2017
    Zuletzt bearbeitet: 23. März 2017
    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
     
  4. MrFab16.4

    MrFab16.4 Erfahrener Benutzer

    Registriert seit:
    22. April 2015
    Beiträge:
    397
    Danke erhalten:
    39
    Danke vergeben:
    83
    @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"
     
  5. MrFab16.4

    MrFab16.4 Erfahrener Benutzer

    Registriert seit:
    22. April 2015
    Beiträge:
    397
    Danke erhalten:
    39
    Danke vergeben:
    83
    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.)
     
  6. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    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.
     
  7. Anonymous

    Anonymous G-WARD 2015/2016

    Registriert seit:
    20. Februar 2012
    Beiträge:
    8.755
    Danke erhalten:
    1.516
    Danke vergeben:
    1.051
    Hochkommata muss nicht!
     
  8. metanerd

    metanerd Mitglied

    Registriert seit:
    27. Juli 2012
    Beiträge:
    6
    Danke erhalten:
    0
    Danke vergeben:
    9
    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
     
  9. metanerd

    metanerd Mitglied

    Registriert seit:
    27. Juli 2012
    Beiträge:
    6
    Danke erhalten:
    0
    Danke vergeben:
    9
    Das scheint wohl eine, für Laien wie mich, bessere Lösung zu sein. Werde ich zeitgleich auch mal versuchen.
     
  10. MrFab16.4

    MrFab16.4 Erfahrener Benutzer

    Registriert seit:
    22. April 2015
    Beiträge:
    397
    Danke erhalten:
    39
    Danke vergeben:
    83
    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...
     
  11. #11 postel, 28. März 2017
    Zuletzt von einem Moderator bearbeitet: 28. März 2017
    war der der falsche Tread, habs in
    Hilfreiche SQL-Befehle verschoben