如果表中的id是按順序排的那很簡單,相信大家都知道怎麼寫。
現在問題是表中的id有些已經被刪除了,並不連貫,所以要查詢第n條資料就有些麻煩,習慣的sql寫法是這樣:
select top 1 * from
(select top n * from testexam order by id desc
) a
應該是簡潔明瞭的寫法,效率應該也很高,今天發現了另外一種寫法,感覺也挺好的
select * from
( select *,
(select count(*) from testexam where id< w.id) as c
from testexam as w
) as a
where c=n
中間這一段select count(*) from testexam where id< w.id比較妙,它其實是給表新增了一列c並從0開始重新排序,這樣表就變成按順序排列,查詢就很方便了
mysql 查詢分組裡的第n條資料,前n條資料
select uname,salary,address,new rank from select uname,salary,address,如果臨時變數等於 address,就 1,否則從1開始 if tmpaddress address,rank rank 1 rank 1 as new rank...
mysql查詢第n到第m條資料
mysql如何指定查詢一張表的查詢結果,如最後5行記錄和最前5行記錄 我們以student表為例,裡面有三個字段 id,name,age,其中id為主健,為自增,裡面共有10條記錄,如下所示。mysql select from student id name age 1 li 11 2 zh 12 ...
mysql隨機查詢n條資料
遇到乙個業務需求是隨機查詢n條資料,一開始使用這種寫法 select from table order by rand limit n後來發現這種寫法的查詢效率極低,並且官方也不推薦使用。又經過查詢發現網上很多教程更靠譜的寫法如下 select from table as t1 join selec...