gpt4 book ai didi

mysql - 在 MySQL 中将 int 转换为 varchar 数据类型

转载 作者:行者123 更新时间:2023-11-29 06:13:13 26 4
gpt4 key购买 nike

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

请帮忙。谢谢。

最佳答案

不起作用”并不是对观察到的行为的精确描述。

我们希望 MySQL 能够按照规范“工作”。我们期望的行为是 MySQL 返回特定的错误消息,例如

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 返回该错误消息,因为根据 MySQL 引用手册,VARCHAR 不是 CAST 的有效类型,但是CHAR 是有效类型。

引用:

http://dev.mysql.com/doc/refman/5.7/en/cast-functions.html#function_convert


注意:

查询还有一些其他问题。

似乎有两个对 user_follow 表的引用。这些引用中至少有一个需要分配表别名。

查询还使用旧式逗号语法进行连接操作,并与连接操作混合使用较新的 JOIN 关键字。

如果没有指定要返回的结果集,我们只能猜测哪些查询会满足要求。

  SELECT u.username
, f.object_id
FROM user u
LEFT
JOIN user_follow f
ON CONVERT(CHAR(25),f.object_id) = u.username

关于mysql - 在 MySQL 中将 int 转换为 varchar 数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37289615/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com