Mysql字符串-Int比较
我的情况是,我需要将两个表与Projectnumber进行比较。两个表都有字段ProjectNumber,但一个表有数据类型INT,另一个表有VARCHAR(45)。所以当我尝试运行下面的查询时,它也会导致一些不匹配的记录Mysql字符串-Int比较,mysql,Mysql,我的情况是,我需要将两个表与Projectnumber进行比较。两个表都有字段ProjectNumber,但一个表有数据类型INT,另一个表有VARCHAR(45)。所以当我尝试运行下面的查询时,它也会导致一些不匹配的记录 Select prj.Projectnumber,ps.ProjectNumber as 'ProjectNumber2' from projectlistsearch ps inner join project prj on ps.ProjectNumber= pr
Select prj.Projectnumber,ps.ProjectNumber as 'ProjectNumber2'
from projectlistsearch ps
inner join project prj on ps.ProjectNumber= prj.ProjectNumber
这会导致一些正确的记录,但也会导致像这样糟糕的结果
ProjectNumber ProjectNumber2
8 08-809076
11 11-437881
11 11-505934
2007 2007-45750
2011 2011-0A76
我也试过打字,但没有成功
如何克服这种情况,只获得完全匹配的记录
谢谢检查铸造功能:
例如:
我建议将
INT
转换为VARCHAR
,并对两者进行比较,因为例如将VARCHAR
转换为INT
当文本以十进制数字开头时,只有可解析的前缀部分才会转换为INT:
输入:
'08-809076'
可解析前缀:
08
转换为INT
8
另一方面,将
VARCHAR
值'8'
与不匹配的'08-809076'
进行比较。是MySQL还是MS SQL Server?您标记了这两个…我尝试了cast(ps.ProjectNumberas UNSIGNED INTEGER),但效果不太好,我的意思是您应该尝试:。。。内部联接项目prj on CAST(ps.ProjectNumber作为无符号整数)=prj.ProjectNumber
8