在MySQL视图中强制转换计算列

在MySQL视图中强制转换计算列,mysql,Mysql,我有一个包含计算列的视图。有没有办法将其转换为CHAR或VARCHAR而不是VARBINARY?显然,我尝试过使用CAST(…作为CHAR),但它给出了一个错误 下面是一个简单的可复制示例 CREATE VIEW view_example AS SELECT concat_ws('_', lpad(9, 3,'0'), lpad(1,3,'0'), date_format(now(),'%Y%m%d%H%i%S')) AS calculated_field_id; 我的视图是这样创建的: d

我有一个包含计算列的视图。有没有办法将其转换为CHAR或VARCHAR而不是VARBINARY?显然,我尝试过使用CAST(…作为CHAR),但它给出了一个错误

下面是一个简单的可复制示例

CREATE VIEW view_example AS 
SELECT concat_ws('_', lpad(9, 3,'0'), lpad(1,3,'0'), date_format(now(),'%Y%m%d%H%i%S'))
AS calculated_field_id;
我的视图是这样创建的:

describe view_example;
+---------------------+---------------+------+-----+---------+-------+
| Field               | Type          | Null | Key | Default | Extra |
+---------------------+---------------+------+-----+---------+-------+
| calculated_field_id | varbinary(27) | YES  |     | NULL    |       |
+---------------------+---------------+------+-----+---------+-------+

 select version();
+-----------------------+
| version()             |
+-----------------------+
| 5.0.51a-community-log |
+-----------------------+

创建视图示例作为计算字段id的SELECT CAST(“+concat_ws(”,lpad(9,3,0'),lpad(1,3,0'),date_格式(现在(),“%Y%m%d%H%i%S'))作为字符)


我不知道为什么。如果你退出演员阵容,它会变成替身。MySQL:一分钟一笑。

谢谢巴里。我从您的解决方案中删除了“+”,它对我很有效。(包含空引号时,我只返回了第一个字符。)创建视图视图(例如,将SELECT CAST(concat_ws(“”),lpad(9,3,0'),lpad(1,3,0'),date_格式(now(),“%Y%m%d%H%I%S”)作为计算字段(CHAR)id;奇怪的我以为你说演员给了你一个错误。我认为添加空字符串可以避免这个错误。看起来CAST出现了一个错误,因为我使用了CAST(…AS VARCHAR)-结果我需要CAST(…AS CHAR)。碰巧,这将字段定义为VARCHAR。