對查詢資料庫中第M到N條記錄的思考
首先我要宣告一下,我在後文中寫到的查詢前提是表中已經有一個自動增長的欄位了.主要是利用它完成查詢的.如果要被查詢的表中沒有這個欄位我們可以想辦法去構建這個欄位,呵呵,這只是我的一個想法,具體做法我還將進一步研究!
請大家先看看我的這長表:
create table test1
(
_id int identity primary key,
num int,
strnum varchar(10),
)
然後我向這張表中插入了55000條記錄.
現在我要查詢它裡面的第20到第40條記錄:
在網上找發好多資料,也在群裡問了好多朋友:
大致找到了以下幾種法:
法一: select top 20 * from test1 where _id not in(select top 20 _id from test1) --這條語句也挺簡單的,但其中使用了 not 關鍵字,一般情況是不使用的,因為它會降低資料庫檢索速度!
法二:
select * from
(
select top 21 * from
(select top 40 * from test1 order by _id ) t
order by _id desc
) t order by _id
這個方法是我比較匯滿意的方法,因為它沒有使用 not 關鍵字,也沒有使用臨時表(它會產生資料庫鎖定,從而降低效率).
法三:
select top 20* from
(
select top 55900 * from test1 order by _id desc
) t order by _id
這個法其它與法二是一模一樣的,只是它是倒查的,原理是一樣的.資料庫中總記錄是55920條記錄.我想用上面那種方法不用去考慮總記錄數
法四:
select top 40 * into tempTabel from test1 order by _id
select top 20 * into myTemp from tempTabel order by _id desc
select * from myTemp order by _id asc
drop table tempTabel
drop table myTemp
這個方法使用了臨時表,在中小型網站中使用還可以,但大訪問量的網站中,我想是不合適的.
終上所述,本人建議還是使用第二種方法. 同時希望與大家一起研究沒有 _id 這個欄位的表中查詢第M到N條記錄.....
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-464309/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在MySQL中,如何實現Top N及M至N段的記錄查詢?MySql
- 資料庫查詢第5到8行的資料資料庫
- 查詢某條記錄存在哪個資料塊中
- 不同資料庫限制取前N條記錄資料庫
- MongoDB隨機查詢返回一條或N條記錄的方法MongoDB隨機
- PHP查詢資料庫中滿足條件的記錄條數(二種實現方法)PHP資料庫
- cmdb 查詢資料庫操作記錄資料庫
- 關於資料庫取表的前N條記錄 (轉)資料庫
- MyBatis 查詢資料時屬性中多對一的問題(多條資料對應一條資料)MyBatis
- MySQL分組查詢後獲取前N條資料MySql
- 關於資料庫查詢業務的幾點思考資料庫
- Mybatis 中將 SQL 查詢記錄到控制檯MyBatisSQL
- 使用Django從資料庫中隨機取N條記錄的不同方法及其效能實測Django資料庫隨機
- 使用JdbcTemp查詢少了一條記錄JDBC
- mybatis一對多查詢resultMap只返回了一條記錄MyBatis
- mongovue 以及mongo shell中對日期查詢命令的記錄GoVue
- 各個資料庫的取一表前N條記錄不同SQL寫法資料庫SQL
- 資料庫資料的查詢----連線查詢資料庫
- 一條Sql語句:取出表A中第31到第40記錄(面試題)SQL面試題
- MongoDB資料庫中查詢資料(下)MongoDB資料庫
- django對資料庫查詢基本方法Django資料庫
- SQL 如何查詢連續上漲 N 次的記錄SQL
- jQuery查詢第n個li元素jQuery
- mongodb索引--1億條記錄的查詢從55.7秒到毫秒級別MongoDB索引
- 資料庫中單表查詢資料庫
- 2條流程解決資料同步到全球部署的N個資料庫資料庫
- MySQL資料庫查詢多個欄位值全部相同的記錄MySql資料庫
- 大型資料庫中跨shard查詢使用的技術對比資料庫
- Oracle資料庫中的分頁查詢Oracle資料庫
- SQL Server 查詢資料庫中所有表資料條數SQLServer資料庫
- 在MongoDB資料庫中查詢資料(上)MongoDB資料庫
- 20240719資料庫關聯查詢、條件查詢資料庫
- MySQL查詢當前資料庫中所有記錄不為空的表MySql資料庫
- Oracle查詢資料庫中所有表和分割槽表的記錄數Oracle資料庫
- Python—Django:關於在Django框架中對資料庫的查詢函式,查詢集和關聯查詢PythonDjango框架資料庫函式
- oracle date資料的條件查詢Oracle
- 報表查詢條件的 N 種使用方式
- 資料庫查詢資料庫