아래 쿼리가 있으며 캐스트 id
해야합니다.varchar
개요
create table t9 (id int, name varchar (55));
insert into t9( id, name)values(2, 'bob');
내가 시도한 것
select CAST(id as VARCHAR(50)) as col1 from t9;
select CONVERT(VARCHAR(50),id) as colI1 from t9;
그러나 그들은 작동하지 않습니다. 제안 해주세요.
답변
데이터 유형 이 필요 cast
하거나 데이터 유형 convert
으로서 데이터를 캐스트 / 변환 할 수있는 데이터 유형 CHAR
이 없습니다 varchar
.
select CAST(id as CHAR(50)) as col1
from t9;
select CONVERT(id, CHAR(50)) as colI1
from t9;
SQL Fiddle 에서 실행중인 다음 SQL을 참조하십시오 .
/*! Build Schema */
create table t9 (id INT, name VARCHAR(55));
insert into t9 (id, name) values (2, 'bob');
/*! SQL Queries */
select CAST(id as CHAR(50)) as col1 from t9;
select CONVERT(id, CHAR(50)) as colI1 from t9;
잘못된 데이터 유형으로 변환하려는 사실 외에도 사용하던 구문 convert
이 잘못되었습니다. 이 convert
함수는 expr
열 또는 값이 있는 다음을 사용합니다 .
CONVERT(expr,type)
또는
CONVERT(expr USING transcoding_name)
원래 쿼리의 구문이 거꾸로되었습니다.
답변
VARCHAR
캐스트 할 유효한 유형이 아니기 때문에 당신은 그것을 얻고 있습니다. MySQL 문서 ( http://dev.mysql.com/doc/refman/5.5/en/cast-functions.html#function_cast ) 에 따르면 다음으로 만 캐스트 할 수 있습니다.
- 바이너리 [(N)]
- CHAR [(N)]
- 데이트
- 날짜 시간
- 소수 [(M [, D])]
- 서명 됨
- [정수]
- 시각
- 부호 없음 [정수]
가장 좋은 방법은 CHAR
.
답변
예
SELECT id || '' FROM some_table;
or SELECT id::text FROM some_table;
postgresql이지만 mySql은 그것을 허용하지 않습니다!
mySql의 지름길 :
SELECT concat(id, '') FROM some_table;
답변
MySQL은 없지만 해킹을 사용할 수있는 RDBMS (Postgres 등)가 있습니다.
SELECT id || '' FROM some_table;
연결은 암시 적 변환을 수행합니다.
답변
정수 열 xa varchar
열 을 비교하는 문제를 해결했습니다.
where CAST(Column_name AS CHAR CHARACTER SET latin1 ) collate latin1_general_ci = varchar_column_name
답변
사용하다 :
SELECT cast(CHAR(50),id) as colI1 from t9;
답변
나는 이것을 일반적인 용어로 대답 할 것이며, 위의 기여자들에게 매우 감사합니다.
MySQL Workbench에서 MySQL을 사용하고 있습니다. 방법을 사용하여 a char
와 a를 int
함께 연결하려는 비슷한 문제가 발생했습니다 GROUP_CONCAT
. 요약하면, 나를 위해 일한 것은 다음과 같습니다.
당신 char
이 ‘c’이고 int
‘i’ 라고 가정 해 봅시다 . 그러면 쿼리는 다음과 같습니다.
...GROUP_CONCAT(CONCAT(c,' ', CAST(i AS CHAR))...