• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

mysql 搞代码 4年前 (2022-01-09) 21次浏览 已收录 0个评论

分页mysqlduplicate column

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

<code> /** * 获取总记录<div>本文来源gaodai.ma#com搞##代!^码@网3</div>数 */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

小鲜肉写过大侠们了。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:【ssh 分页问题】ssh开发,分页时mysql报duplicate column,求救
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址