手機端每次分頁都會 把當前頁最后一條的ID 傳過來 我就要根據排序 取這個ID后的幾條,原來sqlserver 是弄過, mysql 沒有 with as ,rownumer 。 目前是這樣寫:
select * from (
select @rownum := @rownum +1 AS rownum,s.cbgs_create_time,s.cbgs_id from (select @rownum:=0) t,cs_biz_goods_source s
order by s.cbgs_create_time desc
) qt
where qt.rownum >
(
select rownum from (
select @rownum := @rownum +1 AS rownum,s.cbgs_create_time,s.cbgs_id from (select @rownum:=0) t,cs_biz_goods_source s
order by s.cbgs_create_time desc
) temp where cbgs_id ='75d5e99d2f08480ead7d74f3c3990962'
)
但是 qt.rownum > 子查詢 這個條件查出來的結構的是空, 直接寫 qt.rownum > 7 就可以查出來,我下面的子查詢查出來的rownum頁是7,這是因為mysql有什么機制嗎
uj5u.com熱心網友回復:
(select rownum from (
select @rownum := @rownum +1 AS rownum,s.cbgs_create_time,s.cbgs_id from (select @rownum:=0) t,cs_biz_goods_source s
order by s.cbgs_create_time desc
) temp where cbgs_id ='75d5e99d2f08480ead7d74f3c3990962'
)
這一大段是否可改寫成:
select couont(*) from cs_biz_goods_source where cbgs_id ='75d5e99d2f08480ead7d74f3c3990962';
你不是就是想求有多少條記錄嗎。
uj5u.com熱心網友回復:
select @rownum := @rownum + 1 as rownum, -- 行號***
from cs_biz_goods_source a,
(select @rownum := 0 )b
where a.cbgs_id ='75d5e99d2f08480ead7d74f3c3990962'
and a.cbgs_create_time < ifnull(a.cbgs_create_time, '2050-01-01') -- 上一頁最后一個值,如果為空,給個默認值即可
order by a.cbgs_create_time desc
limit 20; -- 每頁顯示20條
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/72101.html
標籤:MySQL
下一篇:關于存盤程序和錯誤1111
