MySQLのCASE - THEN - - 返す誤ったデータ型(BLOB)
-
23-09-2019 - |
質問
IMウェブストアにカスタマイズ可能な製品の属性を作成 - 各属性は、データの異なるタイプを有することができ、各データ型は、対応するMySQLのデータ型を使用して別の列に格納されている
。私のようなクエリがあります
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 (...)
さて、問題はattribute_types
.type
がに?いくつかの型等しいときということですか?私はそれがproduct_attribute_values
テーブルに保存されているとして、それが値を返すようにしたいです。
現在、私は、BLOBを毎回取得します。
万一Iの使用タイプキャストまたは私が知らないことをいくつかの舞台裏魔法があります、または多分いくつかのより良い代替手段?
がありますEDITます:
すべて私がTEXT(テキストエリア)のための条件を追加するまでOKAY(フロートであるイムチェック価格)のようです。
正しい解決策はありません
他のヒント
あなたには、いくつかのクエリのブラウザを使用しているようです。 「パテ」を介して、このコマンドを実行してみます。
また、このようなあなたのCASE文でCAST機能が含まれ、さらには照会ブラウザーで正しい出力を取得します。
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
所属していません StackOverflow