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

来源:互联网 发布:鲁大师linux版 编辑:程序博客网 时间:2024/06/05 02:21

最近在项目开发中的持久层(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


0 0
原创粉丝点击