MySQL分頁查詢 分組遇到的兩個問題

2021-09-01 18:27:02 字數 926 閱讀 5225

一、分頁查詢時排序的字段重複,導致資料重複和丟失

原因

如果列中的多個行具有相同的值order by,則伺服器可以按任何順序自由返回這些行,這些行的排序順序相對於無序列是不確定的。

結論

不能依賴mysql的預設排序,排序的字段資料重複可以增加排序的字段,來提高排序的唯一性。

資料庫核心月報 · mysql sort 分頁

二、分組查詢時,獲取每組最新的一條記錄。

場景:

a、只有pub_time這列的值取到最大的

select id,title,create_user_id,max(pub_time) from m_author_article group by create_user_id
b、先排序後分組

select * from (select id,title,create_user_id,pub_time from m_author_article order by pub_time) as temp group by create_user_id

select id,title,create_user_id,pub_time from m_author_article group by create_user_id
select id, title, create_user_id, pub_time from m_author_article t1 where pub_time = (select max(pub_time) from m_author_article where create_user_id = t1.create_user_id)

mysql 分組查詢

create table wz id int 10 unsigned not null auto increment,province varchar 8 not null default city varchar 32 not null default hphm varchar 8 not nul...

mysql 分組查詢

分組函式,又稱聚合函式,是將一類資料統計後獲得乙個值 1.計算 sum 求和 g 平均值 max 最大值 min 最小值 count 個數 不管什麼引擎下,count 效率最高 以上函式忽略null值 2.distinct 去重 sum distinct id 先去重,再求和。3.group by ...

Mysql 分頁查詢 快照 Mysql分頁查詢優化

select from orders history where type 8 limit 1000,10 該條語句將會從表 orders history 中查詢offset 1000開始之後的10條資料,也就是第1001條到第1010條資料 1001 id 1010 資料表中的記錄預設使用主鍵 一...