"Artikel-Nr." Einträge per SQL modifizieren

Thema wurde von holger_munding, 28. März 2021 erstellt.

  1. holger_munding

    holger_munding Mitglied

    Registriert seit:
    31. Dezember 2018
    Beiträge:
    8
    Danke erhalten:
    0
    Ich hab lauter falsche "Artikel-Nr." Einträge im Shop und würde diese gern per SQL in Gambio Tools ändern. Es sollten immer Kombinationen aus Buchstaben und 4Zahlen sein.
    (Ich habe B. viele SR01, SR02,SR03... etc. => Richtig wäre aber SR0001, SR0002,SR0003... etc.)
    Also mache aus allen "SR" ein "SR00"
    Effektiv müssten bei den entsprechend falsch eingegebenen (z.B KR02) die Zahlen geändert werden (auf z,B. KR0002)
    Als nur die Zahlen sollten in 4-stellig geändert werden. Also überall wo keine 4-stellige Zahl steht sollte 00 vor die bestehende Zahl gesetzt werden. Kann ir das jemand "austüfteln" so dass ich es direlt über das query Fenster in Gambio SQL eingeben kann? Sicherung hab ich schon gemacht - nur der Befehl fehlt mir noch...
    Danke vorab
    Holger
     
  2. Christian Mueller

    Christian Mueller Beta-Held

    Registriert seit:
    4. Juli 2011
    Beiträge:
    3.689
    Danke erhalten:
    880
    Danke vergeben:
    288
    Versuch mal Folgendes:

    Code:
    UPDATE products
    SET products_model = Replace(products_model,"SR","SR00")
    WHERE products_model like "SR*";
    
    Vorher die Datenbank sichern!
     
  3. holger_munding

    holger_munding Mitglied

    Registriert seit:
    31. Dezember 2018
    Beiträge:
    8
    Danke erhalten:
    0
    Genau so in das SQL-Query Feld kopieren und Go drücken oder die Zeilen durch ";" trenen ?
     
  4. holger_munding

    holger_munding Mitglied

    Registriert seit:
    31. Dezember 2018
    Beiträge:
    8
    Danke erhalten:
    0
    Also ich hab jetzt
    UPDATE products
    SET products_model = Replace(products_model,"NU","NU00")
    WHERE products_model like "NU*";
    abgeschickt aber es bleiben immer noch NU01 und NU02 etc
     
  5. Kai Stejuhn

    Kai Stejuhn Beta-Held

    Registriert seit:
    26. September 2014
    Beiträge:
    1.409
    Danke erhalten:
    709
    Danke vergeben:
    92
    Meines Wissens ist das Jokerzeichen beim LIKE das % und nicht der *. Des Weiteren funktionieren die Befehle nur beim Muster ??01, ??02 usw. Wenn aber ein Datensatz z. B. den Inhalt SR100 hat, dann kommt als Ergebnis SR00100 raus, was aber ja wohl nicht gewollt ist.
     
  6. Christian Mueller

    Christian Mueller Beta-Held

    Registriert seit:
    4. Juli 2011
    Beiträge:
    3.689
    Danke erhalten:
    880
    Danke vergeben:
    288
    UPDATE products
    SET products_model = Replace(products_model,"NU","NU00")
    WHERE products_model like "NU%";

    sollte gehen
     
  7. holger_munding

    holger_munding Mitglied

    Registriert seit:
    31. Dezember 2018
    Beiträge:
    8
    Danke erhalten:
    0
    Habs jetzt:
    UPDATE products
    SET products_model = Replace(products_model,"NU","NU00") WHERE products_model like "NU%" AND LENGTH(products_model) < 5
     
  8. Christian Mueller

    Christian Mueller Beta-Held

    Registriert seit:
    4. Juli 2011
    Beiträge:
    3.689
    Danke erhalten:
    880
    Danke vergeben:
    288
    Sorry, ich hab das unter Access probiert, da ist es das *
     
  9. Kai Stejuhn

    Kai Stejuhn Beta-Held

    Registriert seit:
    26. September 2014
    Beiträge:
    1.409
    Danke erhalten:
    709
    Danke vergeben:
    92
    Damit machst Du aber immer noch aus "NU100" ein "NU00100".