Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.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比较_Mysql - Fatal编程技术网

Mysql字符串-Int比较

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

我的情况是,我需要将两个表与Projectnumber进行比较。两个表都有字段ProjectNumber,但一个表有数据类型INT,另一个表有VARCHAR(45)。所以当我尝试运行下面的查询时,它也会导致一些不匹配的记录

 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