+ -
当前位置:首页 → 问答吧 → 关联查询的时候整型和字符型转换遇到的问题,请教高手。谢谢。

关联查询的时候整型和字符型转换遇到的问题,请教高手。谢谢。

时间:2011-08-15

来源:互联网

我的mysql数据库是mysql5.5.8
有两张表 t1,t2,

t1表结构和数据如下:
表结构:
cor_id int
cor_name varchar(30)
cor_code varchar(30)
数据:
cor_id cor_name cor_code
271 移动公司彩铃 311G10C0030
272 仪科有限公司 311B160315
273 宏宝有限公司 311R050036
274 街道办事处 311RXJ0080

t1表结构和数据如下:
表结构:
cor_id int
param_name varchar(30)
数据
cor_id param_name
311 serviceid
411 serviceid

执行下面的查询语句时候:
SELECT a.`cor_id`,b.cor_name,b.cor_code FROM t1 a, t2 b WHERE a.cor_id=b.cor_code
因为cor_code 是字符类型,cor_id是整型,cor_code里面的内容默认转换成数字
311G10C0030 转换成311
结果造成查询结果是:

cor_id cor_name cor_code
311 移动公司彩铃 311G10C0030
311 仪科有限公司 311B160315
311 宏宝有限公司 311R050036
311 街道办事处 311RXJ0080
而其实结果应该是没有记录。
如果我改成
SELECT a.`cor_id`,b.cor_name,b.cor_code FROM t1 a, t2 b WHERE concat(a.cor_id)=b.cor_code
那么没有查询记录

如果我不想用这种显示转换
SELECT a.`cor_id`,b.cor_name,b.cor_code FROM t1 a, t2 b WHERE concat(a.cor_id)=b.cor_code
还有什么其他办法吗,比如说从数据库的参数配置可以做到吗?

作者: lanbaibai   发布时间: 2011-08-15

没有这种方法,只能显示的转换。

作者: ACMAIN_CHM   发布时间: 2011-08-15

热门下载

更多