SOLVED: Freitextfeld attr.4 (int) wird in Datenbank mit NULL oder 0 eingetragen

Hallo, ich habe das Freitextfeld attr4 angelegt (int) mit einer Checkbox, um Artikel für den Auslandversand zu deaktivieren.

In der Datenbank sehe ich in der Tabelle “s_articles_attributes” in der attr4 Spalte bei ca. 300 Artikeln den Wert 0 bei allen anderen NULL.

Ich habe diese Artikel jedoch nicht angefasst. Bei dem Produktexport möchte ich nun mit einem eigenen Filter at.attr4 != true nur Artikel exportieren, welche die Checkbox NICHT aktiv haben.
So exportiert er mit jedoch nur die 300 Artikel, nicht diese wo NULL drin steht, warum wird in der DB nicht überall eine 0 gesetzt, wenn das Freitextfeld angelegt wird?

Shopware Version: 5.2.24

Hallo Daniel,

der Spaltentyp bei Checkboxen ist INT. Du solltest also auf 1 abfragen: at.attr4 != 1

Gruß Marco


100% Shopware Freelancer - https://www.shopfreelancer.de

Alles klar Danke, aber ich versteh immer noch nicht warum bei einigen Artikel bei Anlegen des Feldes NULL oder 0 eingetragen wird?

Beim Anlegen eines neuen Artikels wird der standard Wert “null” gesetzt. Beim Speichern des Artikels wird korrekt “0” geschrieben.
Problematisch wird es, wenn du das Freitextfeld anlegst, wenn du bereits Artikel im System hast. Dann bekommen alle diese Artikel den standard “null”.

Noch problematischer: NULL ist kein integer und nicht vergleichbar zu “0”, sondern ein eigener Datentyp.
Daher müsste deine Abfrage lauten: ( ( at.attr4 IS NULL ) OR ( at.attr4 = 0 ) )

Viele Grüße
https://www.digitvision.de

1 „Gefällt mir“

Vielen Dank für die Erklärung, so war es auch.

Ganz lieben Dank!