MySQL中的排序ORDER BY 除了可以用ASC和DESC,还可以自定义字符串/数字来实现排序。
格式如下:
SELECT * FROM table ORDER BY FIELD(status,1,2,0);
这样子写的话,返回的结果集是按照字段status的1、2、0进行排序的,当然,也可以对字符串进行排序。
原理如下:
FIELD()函数是将参数1的字段对后续参数进行比较,并返回1、2、3等等,如果遇到null或者没有在结果集上存在的数据,则返回0,然后根据升序进行排序。
集合遍历输出:
SELECT * FROM table order by field(`id`, " +
"<foreach collection='page.condition.ids' item='id' separator=','> #{id}</foreach>" +
")+