Frage

Im Erstellen von kundengerechten Produkteigenschaften in einem Web-Speicher -. Jedes Attribut unterschiedlichen Typen von Daten haben kann, wobei jeder Datentyp in einer separaten Spalte entsprechenden mysql Datentyp gespeichert ist

Ich habe eine Abfrage wie:

SELECT
products.id AS id,
products.sku AS sku,
products.name AS name,
products.url_key AS url_key,
attributes.name AS attribute, 

CASE
    WHEN `attribute_types`.`type` = 'text' 
        THEN product_attribute_values.value_text
    WHEN `attribute_types`.`type` = 'float' 
        THEN product_attribute_values.value_float
    WHEN `attribute_types`.`type` = 'price' 
        THEN product_attribute_values.value_float
    WHEN `attribute_types`.`type` = 'integer' 
        THEN product_attribute_values.value_integer
    WHEN `attribute_types`.`type` = 'multiple' 
        THEN product_attribute_values.value_text
    WHEN `attribute_types`.`type` = 'dropdown' 
        THEN product_attribute_values.value_text
    WHEN `attribute_types`.`type` = 'date' 
        THEN product_attribute_values.value_date
    WHEN `attribute_types`.`type` = 'textarea' 
        THEN product_attribute_values.value_textarea
END as value

from (...)

Nun, das Problem ist, dass, wenn attribute_types.type gleich zu? Some-Typ? ich will es einen Wert zurückgeben, wie es in product_attribute_values Tabelle gespeichert ist. Derzeit erhalte ich BLOb jedes Mal.

Sollte ich Typ-Casting oder es gibt einige hinter den Kulissen Magie, dass ich weiß, über tun sie nicht, oder vielleicht gibt es einige bessere Alternative?

EDIT:

Alles scheint OKAY (im Preis prüfen, der Schwimmer ist) zu sein, bis ich eine Bedingung für TEXT (Textfeld) hinzuzufügen.

Keine korrekte Lösung

Andere Tipps

Es scheint, dass Sie einige Abfrage-Browser verwenden. Versuchen Sie die Ausführung des Befehls durch ‚Kitt‘.

, auch die korrekte Ausgabe auch in der Abfrage-Browser zu erhalten, umfassen CAST-Funktion in Ihrer CASE-Anweisung wie folgt aus.

CAST(
CASE
WHEN `attribute_types`.`type` = 'text' 
    THEN product_attribute_values.value_text
WHEN `attribute_types`.`type` = 'float' 
    THEN product_attribute_values.value_float
WHEN `attribute_types`.`type` = 'price' 
    THEN product_attribute_values.value_float
WHEN `attribute_types`.`type` = 'integer' 
    THEN product_attribute_values.value_integer
WHEN `attribute_types`.`type` = 'multiple' 
    THEN product_attribute_values.value_text
WHEN `attribute_types`.`type` = 'dropdown' 
    THEN product_attribute_values.value_text
WHEN `attribute_types`.`type` = 'date' 
    THEN product_attribute_values.value_date
WHEN `attribute_types`.`type` = 'textarea' 
    THEN product_attribute_values.value_textarea
END 
AS CHAR) as value
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top