0
我有一個包含計算列的視圖。有沒有辦法將它轉換爲CHAR或VARCHAR而不是VARBINARY?很顯然,我嘗試使用CAST(...作爲CHAR),但它給出了一個錯誤。在MySQL視圖中投射計算列
這裏是一個簡單的可複製的例子。
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 |
+-----------------------+
謝謝巴里。我從你的解決方案中刪除了''「+',它對我很好。 (包含空的引號,我只得到返回的第一個字符。) CREATE VIEW view_example AS SELECT CAST(concat_ws('_',lpad(9,3,'0'),lpad(1,3,'0 '),date_format(now(),'%Y%m%d%H%i%S'))AS CHAR)AS calculated_field_id; – 2010-06-03 03:06:57
奇怪。我以爲你說CAST給了你一個錯誤。我認爲添加空字符串可能會消除該錯誤。 – barrycarter 2010-06-03 13:56:53
它看起來像CAST給出了一個錯誤,因爲我使用CAST(... AS VARCHAR) - 事實證明我需要CAST(... AS CHAR)。恰巧它將該字段定義爲VARCHAR。 – 2010-06-03 23:50:58