MySQL CASE EnumInt当Varchar ELSE Int作为BLOB返回时 - 如何转换为Varchar?

时间:2011-10-20 02:33:08

标签: mysql casting enums persistence blob

以下返回BLOB,如何将此else值转换为VARCHAR以修复我的问题?

SELECT
    CASE EnumID
        WHEN 1 THEN 'Red'
        WHEN 2 THEN 'Green'
        WHEN 3 THEN 'Blue'
        ELSE EnumID
    END AS EnumValue
FROM Table

在MSSQL / TSQL中,我使用ELSE CAST([EnumID] AS VARCHAR(100)),但MySQL抱怨。

如果此存储过程不知道管理代码与主数据库与数据仓库数据持久性的新枚举值,那么我想要的是故障转移。

一定是一个明显的答案......


显然问题似乎是使用VARCHAR?刚刚发现CAST(EnumID AS CHAR(20))在案例切换中工作正常。

叹息......为什么我打扰发布所有我需要的是橡皮鸭与...交谈...

1 个答案:

答案 0 :(得分:5)

使用cast

SELECT 
    CAST(CASE EnumID 
        WHEN 1 THEN 'Red' 
        WHEN 2 THEN 'Green' 
        WHEN 3 THEN 'Blue' 
        ELSE EnumID 
    END AS VARCHAR(20)) AS EnumValue
FROM `Table` 

请参阅:http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html