DIY编程器网

标题: 利用标准SQL语句实现查询记录分页 [打印本页]

作者: admin    时间: 2014-10-13 15:20
标题: 利用标准SQL语句实现查询记录分页
在搜索的应用中,用户给出搜索条件,服务器查出符合条件的记录。但往往搜索会返回大量的数据记录,如果在网页中,往往是通过分页的方式来实现,页面提供诸如上一页,下一页等等按钮来实现分页。  现在主要有以下几中方式来实现分页:
  我们可以根据实际情况来选择适合自己的方法,我给大家介绍一个通过标准的SQL语句来得到符合条件的数据。如从第10到20条的符合条件(where语句中的)的记录。通过这种方法取得记录有一个必要条件,必须有一个能够标识记录顺序的字段,如id,time等等。下面我为大家演示一个例子:
  查询t_table表中所有记录第10到20条,按id排序。
  SQL语句为:
  SELECT * FROM t_table t1 WHERE (SELECT count(*) FROM t_table t2 WHERE t2.id < t1.id ) > = 10 AND (SELECT count(*) FROM t_table t2 WHERE t2.id < t1.id ) < 20

  又如查询t_table表中key='123'第10到20条的记录,按id排序。
  SELECT * FROM t_table t1 WHERE (SELECT count(*) FROM t_table t2 WHERE t2.id < t1.id AND t2.key = '123') > = 10 AND (SELECT count(*) FROM t_table t2 WHERE t2.id < t1.id AND t2.key = '123') < 20 AND t1.key = '123'

  当然条件中的id可以换为任何能表识记录顺序的字段。




欢迎光临 DIY编程器网 (http://diybcq.com/) Powered by Discuz! X3.2