您的位置:首页 > 数据库 > MySQL

解决MySQL别名重命名不起作用的问题

2017-05-12 16:49 393 查看
最近在项目开发中的持久层(JDBC)遇到了一个这样的问题,就是MySQL如果连表查询,如果两表中的字段都不相同,那么可以正常查询两表中的任意字段的值。但是如果两表中有相同字段,且想把两个字段值都取出来,并且取了别名。在navicat
和sqlyog 中别名起作用。但是放到项目中,就达不到预期效果,结果只显示一个字段的值。

eg: 一个表 test1 含有字段 id,name,password  ,parent_id。



在navicat中这条语句可以正常执行,可以达到预期效果。

select t1.id id1,t2.id id2  from test1 t1 LEFT JOIN test1 t2 on t1.parent_id=t2.id



项目中的结果:



从上图可以看出,我们的别名在jdbc查询后,别名已经不起作用。

解决办法:用函数进行转换后再重命名,如下所示:

 字段为varchar类型的用:trim(字段名) 别名 ,

 日期类型的:DATE_FORMAT( 字段名, '%Y-%m-%d %H:%i:%s' ) 别名

 数字类型的: truncate(字段名,保留小数位数)  别名; 

上述例子:sql如果按照上述进行修改后结果就是预期的。

select truncate(t1.id,2) id1,trim(t2.id) id2  from test1 t1 LEFT JOIN test1 t2 on t1.parent_id=t2.id

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  myeclipse mysql sql