关于sql
成都创新互联公司长期为千余家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为番禺企业提供专业的网站设计、成都网站制作,番禺网站改版等技术服务。拥有10多年丰富建站经验和众多成功案例,为您定制开发。
server
sql语句查询分页数据的解决方案:
要求选取
tbllendlist
中
第3000页的记录,每一页100条记录。-------------------------
----------
方法1:
----------
select
top
100
*
from
tbllendlist
where
fldserialno
not
in
(
select
top
300100
fldserialno
from
tbllendlist
order
by
fldserialno
)
order
by
fldserialno
----------
方法2:
----------
select
top
100
*
from
tbllendlist
where
(fldserialno
(select
max(fldserialno)
from
(select
top
300100
fldserialno
from
tbllendlist
order
by
fldserialno)
as
t))
order
by
fldserialno
方法1执行速度比较快!
不过,这种做法还是很麻烦,强烈期待微软发明新的可分页的sql语句来!!!!
sql
server
---------------------------------------------------------------------------------
从数据库表中的第m条记录开始取n条记录,利用top关键字:注意如果select语句中既有top,又有order
by,则是从排序好的结果集中选择:
select
*
from
(
select
top
n
*
from
(select
top
(m
+
n
-
1)
*
from
表名称
order
by
主键
desc)
t1
)
t2
order
by
主键
asc
例如从表sys_option(主键为sys_id)中从10条记录还是检索20条记录,语句如下:
select
*
from
(
select
top
20
*
from
(select
top
29
*
from
sys_option
order
by
sys_id
desc)
t1)
t2
order
by
sys_id
asc
oralce数据库--------------------------------------------------------------------------------
从数据库表中第m条记录开始检索n条记录
select
*
from
(select
rownum
r,t1.*
from
表名称
t1
where
rownum
m
+
n)
t2
where
t2.r
=
m
例如从表sys_option(主键为sys_id)中从10条记录还是检索20条记录,语句如下:
select
*
from
(select
rownum
r,t1.*
from
sys_option
where
rownum
30
)
t2
where
t2.r
=
10
如果你对oracle数据库分页不是很熟悉的话,本页后面有专门对oracle分页技术的讲解。
my
sql数据库---------------------------------------------------------------------------------------------
my
sql数据库最简单,是利用mysql的limit函数,limit
[offset,]
rows从数据库表中m条记录开始检索n条记录的语句为:
select
*
from
表名称
limit
m,n
例如从表sys_option(主键为sys_id)中从10条记录还是检索20条记录,语句如下:
select
*
from
sys_option
limit
10,20
tag:
racle
racle
server
server
server
sql
sql
利用客户端连接工具执行查询语句,再结果集全选右键导出,选择导出的文件类型即可,或者直接复制查询结果,粘贴到Excel里面。
做一些数据库查询,不仅希望得到要查询的结果,还希望方便地计算一下查询结果中有多少条记录。我通常的做法是:
$q = "select * from $fromTable where $where limit $start,$pageSize";
$r = mysql_query($q);
$q = "select count(*) from $fromTable where $where";
$cnt = mysql_query($q);
当 然可以用mysql_num_rows()或者mysql_affected_rows()来在第一次查询后得到记录数目,但是这两个函数返回的都是查询 后得到的结果的数目,是受limit语句的影响的。很多情况下,需要知道这条查询语句在没有limit的情况下结果总数,比如分页查询。
mysql 中本身支持一种更好的方法来达到上面的效果,那就是使用SQL_CALC_FOUND_ROWS和FOUND_ROWS()函数。