- MySQL 查詢時(shí)态坦,如果不帶
order by
盐数,會(huì)根據(jù)主鍵來(lái)排序,從小到大返回查詢結(jié)果伞梯; - 帶
order by
時(shí)玫氢,可指定按字段升序 ASC 或降序 DESC:
SELECT * FROM project_case where
case_id in (119, 113, 117)
order by case_id asc;
SELECT * FROM luckyframe.project_case where
case_id in (119, 113, 117)
order by case_id desc;
- 若想結(jié)果按照指定的字段和指定的順序進(jìn)行排序時(shí)帚屉,需要用到
order by field
關(guān)鍵字:
SELECT * FROM project_case where
case_id in (119, 113, 117)
order by field(case_id, 119, 113, 117);
返回結(jié)果按照指定的字段和指定的順序進(jìn)行排序:
指定順序排序
MyBatis 使用 order by field 語(yǔ)法
<select id="selectSortedProjectCaseByIds" parameterType="String" resultMap="ProjectCaseResult">
SELECT * FROM project_case where
case_id in
<foreach collection="caseIdList" item="caseId" open="(" close=")" separator=",">
#{caseId}
</foreach>
order by field
<foreach collection="caseIdList" item="caseId" open="(case_id," close=")" separator=",">
#{caseId}
</foreach>
</select>
Mapper.java 中調(diào)用的代碼如下:
List<ProjectCase> selectSortedProjectCaseByIds(@Param("caseIdList") List<Integer> caseIdList);
傳遞的 caseIdList 是已經(jīng)排好序的列表。