dirk27
Goto Top

Suche SQL Befehl

Hallo Zusammen,

bin ganz neu mit SQL unterwegs. Ich hab eine Frage:
Ich möchte einen SQL Befehl in PHPmyAdmin eingeben der folgendes macht:

Wenn in tabelle products unter products_image keine URL zum Bild eingetragen ist, dann setze product_status auf 0.

Status 0 ist inaktiv, Status 1 wäre aktiv.

Kurz um, wenn kein Produktbild in der Datenbank hinterlegt ist, möchte ich, dass das Produkt inaktiv gesetzt wird.

Kann mir da jmd mit einem Befehl helfen?

Vielen Dank im Voraus
Dirk

Content-Key: 88376

Url: https://administrator.de/contentid/88376

Ausgedruckt am: 28.03.2024 um 18:03 Uhr

Mitglied: Biber
Biber 24.05.2008 um 15:52:16 Uhr
Goto Top
Moin Dirk27,

ich möchte hier gern die Antwort verweigern oder zumindest versuchen, dass Du diese Frage zurückziehst.
Denn was Du vorhast, ist das redundante Speichern von Informationen - damit kannst Du es nur schlimmer machen.
Wenn in Status auch welchen Gründen auch immer eine 1 steht, aber keine Url vorhanden ist oder doch eine Url vorhanden ist, aber Status gleich 'Inaktiv' ist - dann hast Du mehr Probleme als ohne das redundate Statusfeld.

Wenn die Argumentation wäre "Ich habe ein Feld 'BildAnzeigen', und das möchte ich erstmal überall auf '1' setzen, wo etwas im Feld 'product_images' steht", dann wäre das Statement abhängig vom konkreten Datenbanksystem sinngemäß so:
UPDATE products set BildAnzeigen = 1 where product_images is not NULL;
[eine 0 stand ja vorher ohnehin in ALLEN Sätzen, wenn Du das Feld als numerisches Feld mit Default angelegt hast]
Den exakten Befehl können wir erst nennen, wenn wir wissen, ob es hier um Oracle oder Access oder mySQL oder whatever geht.

Grüße
Biber
Mitglied: Genios
Genios 24.05.2008 um 22:32:58 Uhr
Goto Top
Ich würde es folgendermassen machen:

 UPDATE products SET product_status= 0;
Damit setzt Du erstmal alle auf 0, danach:
 UPDATE products SET product_status= 1 WHERE product_image like 'http%';  
Damit prüfst Du gleichzeitig ob die URL eine HTTP Adresse ist.

Warum diese Reihenfolge?
Ich schalte lieber erst aus und dann an wie umgekehrt, wer zu früh einschaltet macht unter umständen viel kaputt.