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 |
+-----------------------+
감사합니다. 배리. 귀하의 솔루션에서 "+"제거하고 나에게 잘 작동했습니다. (빈 따옴표가 포함 된 경우 첫 번째 문자 만 반환되었습니다.) 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; –
이상한. 캐스트가 너에게 잘못했다고 말한 줄 알았는데. 나는 빈 문자열을 추가하는 것이 그 오류를 제거 할 수 있다고 생각했다. – barrycarter
CAST (... AS VARCHAR)를 사용했기 때문에 CAST에서 오류가 발생했습니다. CAST (... AS CHAR)가 필요합니다. 이런 일이 발생하면 필드가 VARCHAR로 정의됩니다. –