将int转换为varchar
我有下面的查询,需要将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; 
但他们不工作。 请build议。
 您将需要convert或convert为CHAR数据types,没有varchar数据types,您可以将数据转换/转换为: 
 select CAST(id as CHAR(50)) as col1 from t9; select CONVERT(id, CHAR(50)) as colI1 from t9; 
在SQL小提琴中查看下面的SQL – in action:
 /*! 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; 
 除了您试图转换为不正确的数据types的事实之外,您用于转换的语法不正确。 在expr是您的列或值的情况下, convert函数使用以下内容: 
  CONVERT(expr,type) 
要么
  CONVERT(expr USING transcoding_name) 
您的原始查询语法倒退。
你得到的是因为“VARCHAR”是不是一个有效的types投入。 根据MySQL文档( http://dev.mysql.com/doc/refman/5.5/en/cast-functions.html#function_cast ),您只能投射到:
- BINARY [(N)]
- CHAR [(N)]
- date
- 约会时间
- DECIMAL [(M [,d])]
- 签
- [整数]
- 时间
- UNSIGNED [INTEGER]
我认为你最好的select是使用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列与
“其中CAST(Column_name AS CHAR CHARACTER SET latin1)collate latin1_general_ci = varchar_column_name”
为什么?
 mysql> SELECT CAST(1 AS CHAR) + CAST(1 AS CHAR); +-----------------------------------+ | CAST(1 AS CHAR) + CAST(1 AS CHAR) | +-----------------------------------+ | 2 | +-----------------------------------+ 1 row in set (0.00 sec) 
使用 :
 SELECT cast(CHAR(50),id) as colI1 from t9;