解決一張表內對不同型別的資料分頁載入問題

2021-08-07 06:39:47 字數 779 閱讀 1667

以前我們對一張表進行分頁載入資料的時候,那張表資料都是擁有相同的字段,相同的資料結構,所以對這些資料進行分頁載入的話,很簡單,只需要一句sql語句就搞定:select

* from 表名 limit 偏移量 每頁最多幾條資料。比如:select * from user limit page*20 20;意思就是每頁最多20條資料,page就是你頁面中的頁碼。也許你會說,當表中的資料有成千上萬甚至很多時,這樣就會有效能問題,沒關係,接下來我要說的問題就可以解決這樣效能的問題。

不知道你們在做專案的時候有沒有遇到過這樣需求或者問題,有時我們發現這些需求中它們的資料結構都是差不多的,所以按照關係型資料庫的設計原則,我們不需要另外新增多張表,而是新增乙個欄位type便可區別這寫資料。比如說:一張電影表film中,有科幻、愛情、恐怖等等型別,它們其他的資料結構都相同,因此我們在設計的時候,只需要給它新增乙個欄位type型別便可知道哪部影片是屬於什麼型別的了。

好了,既然需求有了,那麼問題是我們怎麼來分頁載入電影表中科幻型別的電影呢?這時候再用我們上面簡單sql語句已經無法解決該問題了。因為我們需要的只是科幻這一型別資料並且要對其進行分頁。

其實,要解決該問題也很簡單,還是要借助上面簡單的sql,只不過要稍微修改一下就可以了。好了,我直接給出sql語句吧:select *

from film where id >最後一條資料id and type =」科幻」 limit 0

20。怎樣,看了這句sql知道它為什麼既解決效能問題又解決了對同一張表不同型別進行分頁載入的問題了嗎。

將一張表的資料插入另外一張表

表cmb send sms create table cmb send sms send id bigint 20 not null auto increment comment 主鍵id phone no varchar 32 not null comment 手機號碼 status varcha...

mysql實現同一張表內,統計不同條件的資料

想要同時統計bug表的啟用bug數量,與已完成bug數量。select p.name 所屬專案 count b.status 啟用狀態bug總數 from zt bug b zt project p where b.projectin 464,465,466 and p.id b.projectan...

兩張結構不同的表,從一張表匯入資料到另外一張表

使用儲存過程的例子 第一步 建立儲存過程 建立儲存過程時,最好現在查詢分析器中進行除錯,除錯好以後再建立儲存過程 declare cgcount int 檢查狀態 select retino 該申請未曾通過審批,不符合辦結條件 return endselect retino 該申請已經辦結 retu...