2010-06-02 4 views
0

계산 된 열을 포함하는보기가 있습니다. VARBINARY가 아닌 CHAR 또는 VARCHAR로 변환하는 방법이 있습니까? 분명히 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 | 
+-----------------------+ 

답변

0

, '_'(AS SELECT CAST view_example LPAD (9, 3 (""+ CONCAT_WS보기 만들기 '0'), LPAD (1,3, '0'), date_format (now(), '% Y % m % d % H % i % S')) AS CHAR) AS calculated_field_id;

나는 이유를 모른다. 당신이 캐스트를 떠나면, 그것은 두 배가됩니다. MySQL : 웃음.

+0

감사합니다. 배리. 귀하의 솔루션에서 "+"제거하고 나에게 잘 작동했습니다. (빈 따옴표가 포함 된 경우 첫 번째 문자 만 반환되었습니다.) 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; –

+0

이상한. 캐스트가 너에게 잘못했다고 말한 줄 알았는데. 나는 빈 문자열을 추가하는 것이 그 오류를 제거 할 수 있다고 생각했다. – barrycarter

+0

CAST (... AS VARCHAR)를 사용했기 때문에 CAST에서 오류가 발생했습니다. CAST (... AS CHAR)가 필요합니다. 이런 일이 발생하면 필드가 VARCHAR로 정의됩니다. –

관련 문제