【语句顺序】
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
================================================================
【根据某一个ID 和 size 来进行分页】 ===好处:动态插入数据时来进行分页(根据ID这列来进行降序排序)
<!-- 查询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;
}