在MySQL中将int转换为varchar数据类型
我有两张桌子。我需要比较两个值,但它们在两个表中的数据类型不同。在一个表中,它是int,在另一个表中,它是varchar。我尝试将varchar与cast()一起使用,但cast()与varchar不兼容 我的问题如下:在MySQL中将int转换为varchar数据类型,mysql,casting,int,varchar,Mysql,Casting,Int,Varchar,我有两张桌子。我需要比较两个值,但它们在两个表中的数据类型不同。在一个表中,它是int,在另一个表中,它是varchar。我尝试将varchar与cast()一起使用,但cast()与varchar不兼容 我的问题如下: select user.username, user_follow.object_id from user,user_follow left join user_follow ON cast(user_follow.object_id as varchar(25))= user
select user.username, user_follow.object_id from user,user_follow
left join user_follow
ON cast(user_follow.object_id as varchar(25))= user.username
WHERE user.username= cast(user_follow.object_id as varchar(25));
请帮忙。
谢谢。您应该
将转换为CHAR
数据类型,没有varchar
数据类型可以转换数据,请尝试以下操作:)
不确定要使用什么,left join
或join
select u.username, uf.object_id from user u
left join user_follow uf
ON cast(uf.object_id as char(25))= cast(u.username as char(25))
-- WHERE cast(u.username as char(25)) = cast(uf.object_id as char(25));
或
看看。“:不起作用:”是对观察到的行为的不精确描述
我们期望MySQL按照规范“工作”,我们期望MySQL的行为是返回特定的错误消息,例如1064
Error Code: 1064
You have an error in your SQL syntax; check the manual that corresponds
to your MySQL server version for the right syntax to use near VARCHAR
我们希望看到这个错误消息,因为根据MySQL参考手册,VARCHAR
不是CAST的有效类型,但是CHAR
是
参考:
注:
这不是查询的唯一问题
似乎有两个引用到user\u follow
表;这些引用中至少有一个需要指定表别名
查询还使用老式的逗号语法进行联接操作,另一个联接操作使用较新的联接关键字
如果没有要返回的resultset的规范,我们只是
“猜测”您实际想要运行的查询。我猜
SELECT u.username
, f.object_id
FROM user u
LEFT
JOIN user_follow f
ON CONVERT(CHAR(25),f.object_id) = u.username
您可以使用CONCAT(user\u follow.object\u id)谢谢您的回答。我已经尝试使用上述查询,但它给了我一个错误。错误代码:1066。非唯一表/别名:“user\u follow”已更新,请再次检查。如果我使用的是别名,则仍会出现错误。错误1054:“on子句”中的未知列“u.username”。我的查询是-选择u.username,uf.object_id FROM user AS u,user_follow AS uf LEFT JOIN user_follow cast(uf.object_id AS char(25))=cast(u.username AS char(25)),其中cast(u.username AS char(25))=cast(uf.object_id AS char(25))@JyotKhanguraChahal请再检查一次我的答案。您应该使用左连接
和WHERE
中的一个,查看。
SELECT u.username
, f.object_id
FROM user u
LEFT
JOIN user_follow f
ON CONVERT(CHAR(25),f.object_id) = u.username