1. 程式人生 > >mysql分頁 和 mysql中利用編號id和每頁條數來進行分頁

mysql分頁 和 mysql中利用編號id和每頁條數來進行分頁

1.mysql分頁

序】
        select 選擇的列
        from

        where 查詢的條件
        group by
屬性 having 組過濾的條件
        order by

排序屬性
        limit 起始記錄位置,取記錄的條數   (這裡不需要加括號)
【其中】
        select 選擇的列
        from

        where 查詢的條件
        group by
屬性 having 組過濾的條件
        這個是按照分屬性行分,所有分屬性上相同的記錄被分,作為結果中的一條記錄,後面的having組進過濾的條件,必和group by一起使用
        order by 排序屬性 是對結果集合行排序,可以是升序asc,也可以是降序desc
        limit 起始記錄位置,取
記錄的條數,對記錄進取,主要用來實現功能

-- 語法:

SELECT select_listFROM table_name 

        [ WHERE search_condition ] 

        [ GROUP BY group_by_expression ] 

        [ HAVING search_condition ] 

        [ ORDER BY order_expression [ ASC DESC ] ] 

        [limit m,n]  

-- 示例:

-- limit 0,10是從第一條開始,10條資料

       select classNo  from table_name  

        group by classNo   

        having(avg(成績)>70) 

        order by classNo  

        limit 0,10

================================================================

2.mysql中利用編號id和每頁條數來進行分頁(如果實時動態插入資料,應該用id來進行分頁)

【根據某一個ID  和 size 來進行分頁】 ===好處:動態插入資料時來進行分頁(根據ID這列來進行降序排序)

SELECT * FROM 表名 WHERE  STARTID< #{started}   ORDER  BY  flow_id DESC  LIMIT  SIZE=#{size}
Demo如下:
<!-- 查詢social的公告資訊列表【根據id和每頁顯示條數來進行分頁】 -->
	<select id="searchSocialCrowdNoticeInfo" resultMap="BaseResultMap">
		select  <include refid="Base_Column_List"></include>
		from FL_CROWD_NOTICE where CROWD_ID=#{flCrowdNotice.crowdId} 
		<if test="startId!=null and startId!=0">
			AND NOTICE_ID < #{startId}
		</if>
		ORDER BY NOTICE_ID DESC LIMIT 0,#{size}
	</select>
dao介面
public List<FlCrowdNotice> searchSocialCrowdNoticeInfo(@Param("flCrowdNotice")FlCrowdNotice flCrowdNotice, @Param("startId")Long startId, @Param("size")Integer size);

service層
public List<FlCrowdNotice> searchCrowdNoticeInfo(FlCrowdNotice flCrowdNotice, Long startId, Integer size) {
		List<FlCrowdNotice> flCrowdNotices = iFlCrowdNoticeDao.searchSocialCrowdNoticeInfo(flCrowdNotice,startId,size);
		return flCrowdNotices;
	}