Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当Varchar ELSE Int作为BLOB返回时,MySQL CASE EnumInt-如何强制转换为Varchar?_Mysql_Casting_Enums_Persistence_Blob - Fatal编程技术网

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

当Varchar ELSE Int作为BLOB返回时,MySQL CASE EnumInt-如何强制转换为Varchar?,mysql,casting,enums,persistence,blob,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强制转换([EnumID]作为VARCHAR(100))但是MySQL会

下面返回一个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强制转换([EnumID]作为VARCHAR(100))
但是MySQL会抱怨

如果此存储过程不知道新的枚举值来管理代码、主数据库和数据仓库数据持久性,我只需要进行故障切换

肯定是一个显而易见的答案


显然,问题似乎在于使用VARCHAR?刚刚发现
CAST(EnumID为CHAR(20))
在case开关中工作良好

叹息。。。为什么我要发帖呢?我需要的只是一只橡皮鸭来说话……

使用
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` 

请参阅:

代码中是否有括号[EnumID]?将问题的答案作为答案发布。然后检查它作为答案。这对销售代表很有帮助。已经尝试过了,但不得不先等8个小时。我更喜欢这个解决方案。感谢您没有为我工作:错误代码:1064。您的SQL语法有错误;查看与MySQL服务器版本对应的手册,以了解第7行中使用“VARCHAR(20))作为EnumValue的正确语法