>  기사  >  데이터 베이스  >  【ssh 分页问题】ssh开发,分页时mysql报duplicate column,求救

【ssh 分页问题】ssh开发,分页时mysql报duplicate column,求救

WBOY
WBOY원래의
2016-06-06 09:42:431129검색

分页mysqlduplicate column

ssh开发,数据库用的mysql。
分页时,需获取数据总函数totalCount,进一步得到totalPage,获取totalCount的代码(略去绑定参数、入参检查等代码):

<code> /** * 获取总记录数 */protected int getTotalCount(Session s, String sql){    //构建count查询    sql = "SELECT COUNT(1) FROM (" + sql + ") tmp";    Query countQuery = s.createSQLQuery(sql);    //输出结果    List countList = countQuery.list();    return (Integer)countList.get(0);}</code>

以上代码在特殊情况下报“Duplicate column name 'xxxx'”,例:
user表字段:**_user_id_**, login_name, passwd, ...
user_detail表字段:user_detail_id, user_id, address, ...
查询sql(**_代号SQL1_**):select * from user u inner join user_detail ud on u.user_id = ud.user_id

最终生成的查totalCount的sql(代号SQL2)是:
select count(1) from (
select * from user u inner join user_detail ud on u.user_id = ud.user_id
) tmp
执行报错,原因是user、user_detail表都有user_id字段,SQL1出来的结果包含了重名字段user_id,在SQL2中引用成tmp表时就会报重名错误。

想请教问题如下:
1、oracle中执行SQL2就不会报错,有没有办法改变mysql的设置使得执行SQL2的时候不再报错?
2、有没有其它的方法计算totalCount

小鲜肉写过大侠们了。

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.