将值varchar转换为mysql中的其他数据类型


Convert value varchar into other datatype in mysql?

这是查询

CASE SF.value
            WHEN '' THEN '9999999999'
            WHEN 'N/A' THEN '99999999'
            WHEN 'POA' THEN '999999999'
            WHEN 'Free' THEN -1
            ELSE IF(SF.value IS NULL,'9999999999',CAST(SF.value as DECIMAL))
        END as priceval,
    ///End Query

我在DB中有价值

value(varchar)
    4
    4.5
    4.3
    6.6

从数据库中取出后,

    PRINTING:
    var_dump($data);
    Output
    ---------
    string(1) "4"
    string(1) "5"
    string(1) "5"
    string(1) "7"

我需要得到以下顺序的值由整数或浮点数或十进制,但值的顺序

    string(1) "4"
    string(3) "4.3"
    string(3) "4.5"
    string(3) "6.6"
    (OR)
    int(1) "4"
    int(3) "4.3"
    int(3) "4.5"
    int(3) "6.6"

您使用DECIMAL而没有指定精度,请尝试使用CAST(SF.value AS DECIMAL(10,1))