日期:2014-05-16  浏览次数:20759 次

怎么获取刚才查询的 记录的 count(*)
在我的应用当中,需要选出符合条件的记录
如SQL:
步骤1:
SQL code
select *,16 as tableNumber from merger_16 where  gridID in (55162406,55162407,55162408,55180406,55180407,55180408,55198406,55198407,55198408) order by ((lon-104.079048)*(lon-104.079048)+(lat-30.658125)*(lat-30.658125)) asc

但是因为要用的分页,,所以说要先查出
步骤2:
SQL code
select count(*) from(select *,16 as tableNumber from merger_16 where  gridID in (55162406,55162407,55162408,55180406,55180407,55180408,55198406,55198407,55198408) order by ((lon-104.079048)*(lon-104.079048)+(lat-30.658125)*(lat-30.658125)) asc) t


所以我的步骤顺序为:
步骤2查询完成,接着步骤1:(步骤2>步骤1)


我用的mysql5,java语言做的开发
我目前的应用对效率要求很高..
请问一下能不能通过修改SQL语句或者是其他的办法来提高效率?
在线等!

------解决方案--------------------
select *,16 as tableNumber from merger_16 where gridID in (55162406,55162407,55162408,55180406,55180407,55180408,55198406,55198407,55198408) order by ((lon-104.079048)*(lon-104.079048)+(lat-30.658125)*(lat-30.658125)) asc

select FOUND_ROWS() : 
可以取得行数,不用SELECT COUNT(*)
------解决方案--------------------
探讨
能不能通过一次查询就能得到我的要求/?
应为以上需要2次查询!

------解决方案--------------------


引用是的
我需要总记录数,然后用程序来算出总页数等等的一系列分页信息!