解决MySQL别名重命名不起作用的问题
2017-05-12 16:49
393 查看
最近在项目开发中的持久层(JDBC)遇到了一个这样的问题,就是MySQL如果连表查询,如果两表中的字段都不相同,那么可以正常查询两表中的任意字段的值。但是如果两表中有相同字段,且想把两个字段值都取出来,并且取了别名。在navicat
和sqlyog 中别名起作用。但是放到项目中,就达不到预期效果,结果只显示一个字段的值。
eg: 一个表 test1 含有字段 id,name,password ,parent_id。
![](https://img-blog.csdn.net/20160317140534471?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
在navicat中这条语句可以正常执行,可以达到预期效果。
select t1.id id1,t2.id id2 from test1 t1 LEFT JOIN test1 t2 on t1.parent_id=t2.id
![](https://img-blog.csdn.net/20160317140632707?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
项目中的结果:
![](https://img-blog.csdn.net/20160317141804355?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
从上图可以看出,我们的别名在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
和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
相关文章推荐
- 解决mysql连表查询别名不起作用,同名的字段只能显示其中一个字段值。
- 解决mysql连表查询别名不起作用,同名的字段只能显示其中一个字段值。
- MySQL中的表名、列名、别名区分大小写的问题及解决办法
- 解决mysql连表查询别名不起作用,同名的字段只能显示其中一个字段值。
- 关于mysql 数据库使用spring 2.0低版本 JdbcTemplate.queryForList 查询结果别名不起作用的解决方法
- MySql中文问题解决方法
- MySQL+VBB问题:Record has changed since last read in table 'session' 的解决
- 安装MySQL遇到的问题及解决
- java+mysql中文问题的解决
- Tomcat5+Mysql文中乱码问题的解决方法
- 分页显示问题的解决方法(jsp,sqlserver,mysql,oracle)
- 解决mysql启动问题: Can't connect to local MySQL server through socket '/tmp/mysql.sock'
- mysql拒绝访问(Error 1044/1045)问题的解决
- 解决hibernate+mysql中文问题
- (转)MySQL5.0中文问题及JDBC数据库连接和JSP汉字编码问题解决方法总结
- MySQL5.0中文问题及JDBC数据库连接和JSP汉字编码问题解决方法总结
- 解决mysql--jsp中出现的中文乱码问题
- 解决不能通过mysql.sock连接MySQL问题
- 解决PHP问题:Fatal error: Call to undefined function: mysql_connect()
- MySql.data.MySqlClient 解决乱码问题!