Mar*_*rio 110 mysql sql database casting mariadb
我有以下查询,需要转换id为varchar
架构
create table t9 (id int, name varchar (55));
insert into t9( id, name)values(2, 'bob');
Run Code Online (Sandbox Code Playgroud)
我尝试了什么
select CAST(id as VARCHAR(50)) as col1 from t9;
select CONVERT(VARCHAR(50),id) as colI1 from t9;
Run Code Online (Sandbox Code Playgroud)
但他们不起作用.请建议.
Tar*_*ryn 201
您将需要cast或convert作为CHAR数据类型,没有varchar可以转换/转换数据的数据类型:
select CAST(id as CHAR(50)) as col1
from t9;
select CONVERT(id, CHAR(50)) as colI1
from t9;
Run Code Online (Sandbox Code Playgroud)
在SQL Fiddle中查看以下SQL - in action - over :
/*! 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;
Run Code Online (Sandbox Code Playgroud)
除了您尝试转换为不正确的数据类型之外,您使用的语法convert不正确.该convert函数使用以下expr列表或值:
CONVERT(expr,type)
Run Code Online (Sandbox Code Playgroud)
要么
CONVERT(expr USING transcoding_name)
Run Code Online (Sandbox Code Playgroud)
您的原始查询具有向后的语法.
Aar*_*ron 35
你得到的是因为"VARCHAR"不是一个有效的类型.根据MySQL文档(http://dev.mysql.com/doc/refman/5.5/en/cast-functions.html#function_cast),您只能转换为:
我认为你最好的选择是使用CHAR.
小智 13
是
SELECT id || '' FROM some_table;
or SELECT id::text FROM some_table;
Run Code Online (Sandbox Code Playgroud)
是postgresql,但mySql不允许这样!
mySql中的捷径:
SELECT concat(id, '') FROM some_table;
Run Code Online (Sandbox Code Playgroud)