Eindeutigen Wert bei UPDATE ersetzen

Jetzt funktioniert es

Code:
UPDATE products_attributes_download SET products_attributes_maxcount = REPLACE(products_attributes_maxcount, "0", "30")
 WHERE products_attributes_maxcount = '0'

Mit WHERE hatte ich schon probiert aber immer an der falschen Stelle gesetzt
Ergänzend möchte ich noch mal darauf hinweisen das Datentypen und implizite Konvertierungen dir schnell Probleme machen können. Du verwendest hier im WHERE Hochstriche wie bei einer Zeichenkette, welches Format die Spalte nun hat hast du noch nicht verraten. Auch wenn für SQL 0 = '0' ist (weil automatisch konvertiert wird) bin ich kein Freund davon solche Sachen nicht bewusst deutlich zu machen.

Also abgesehen von deinem Datenmodell:
1) Grundsätzlich mit WHERE einschränken sonst geht das irgendwann schief.
2) Datentypen beachten und "bewusst" konvertieren.
3) replace() nur für Zeichenketten verwenden und nur dann wenn das UPDATE nur einen Teil des Wertes verändern soll.
 
Werbung:
Oh Gott, was habe ich hier bloß angestellt :confused:

Der Ansatz mit:
UPDATE products_attributes_download SET products_attributes_maxcount =30
oder
UPDATE products_attributes_download SET products_attributes_maxdays =365
ist völlig OK.

Da will ich nur einmal machen wenn der Shop alle Artikel hat.
Diese Daten werden nie wieder verändert, auch nicht über ein Update.

pid.png

Das ist nur eine interne Zuweisung der Artikel bzgl. wie oft und wie lange der Download erfolgen kann.

Und wenn alle Artikel eingepflegt sind, soll jeweils EINMAL der entsprechende Wert zugewiesen werden.
Alle weiteren Änderungen oder nochmalige Freigaben oder eine Zeitenverlängerung erfolgt über den Admin im Kundenbereich.

Danke für die Hilfe und ich glaube, das man das jetzt als erledigt markieren kann.
 
Nur weil in deinem jetzigen Fall das Datenbankdesign Quatsch ist musst du dir ja nicht angewöhnen schlampig zu arbeiten, vielleicht war es nicht dein letztes SQL Update in deinem Leben...
 
Werbung:
Nur weil in deinem jetzigen Fall das Datenbankdesign Quatsch ist
Weil MySQL gern mal etwas vergisst, speichert man eine Konstante zur Sicherheit 3744 mal
Na kommt, das sind beides Dinge, auf die man als Anwender eines Webshops wenig bis keinen Einfluss hat. Das wisst Ihr wahrscheinlich beide. Und es ist spricht wohl eher für den Webshop, dass man es individuell setzen kann. Ob man es macht, ist wieder eine andere Frage.
Oh Gott, was habe ich hier bloß angestellt :confused:
Ich denke, es ist alles geklärt. Und zwar schon einige Beiträge zuvor.
Wir schauen hier gerne sehr kritisch auf mySQL. Da kannst weder Du etwas dafür noch der Webshop.
 
Zurück
Oben