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

KCD*_*KCD 3 mysql enums persistence casting 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
Run Code Online (Sandbox Code Playgroud)

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

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

必然是一个明显的答案......


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

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

Joh*_*ica 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` 
Run Code Online (Sandbox Code Playgroud)

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