将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;