根據特定順序查詢
有這麼一個需求, 根據test_user.status進行查詢, 并且按2,1,0,4,3 進行查詢.
select id,`status`,name from test_user order by field(`status`, 2, 1, 0, 4, 3);
查詢完成:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5iNzAjN1YjYyAzNwEGNjVDOyYzXyMjNxITM5EzLcVDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
哦, 災難來了, status居然有null, 那麼null 放到最後應該怎麼做呢?
select `id`,`name`, `status` from test_user order by `status` is null, field(`status`, 2,1,0,4,3);
查詢得到了我們想要的結果:
那麼好玩的來了, 将null也參與到排序中, 完成2,1,0,null,4,3 的排序應該怎麼做呢?
select `id`,`name`, `status` from test_user order by field(`status`,4,3), `status` is null, field(`status`, 2,1,0) ;
查詢完成: