Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MySQL中将int转换为varchar数据类型_Mysql_Casting_Int_Varchar - Fatal编程技术网

在MySQL中将int转换为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

我有两张桌子。我需要比较两个值,但它们在两个表中的数据类型不同。在一个表中,它是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.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