当Varchar ELSE Int作为BLOB返回时,MySQL CASE EnumInt-如何强制转换为Varchar?
下面返回一个BLOB,如何将这个else值转换为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会
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的正确语法