"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.824
    Danke erhalten:
    981
    Danke vergeben:
    312
    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.454
    Danke erhalten:
    743
    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.824
    Danke erhalten:
    981
    Danke vergeben:
    312
    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.824
    Danke erhalten:
    981
    Danke vergeben:
    312
    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.454
    Danke erhalten:
    743
    Danke vergeben:
    92
    Damit machst Du aber immer noch aus "NU100" ein "NU00100".