需求:数据中有cate_id 列,用户关注了cate_id等于1,2,3的分类,这些分类在列表查询的时候排到前面。
$sql = "SELECT id,title,image FROM fa_instrument WHERE status='2' order by (";
foreach ($cate_ids as $key=>$value){
if($key==0){
$sql = $sql.'cate_id = '.$value;
}else{
$sql = $sql.' or cate_id = '.$value;
}
}
//获取页码
$page = $this->request->post('page',1);
$sql = $sql.") desc LIMIT 5 OFFSET ".($page-1)*5;
//得到的sql是:SELECT id,title,image FROM fa_instrument WHERE status='2' order by (cate_id = 1 or cate_id = 2 or cate_id = 3) desc LIMIT 5 OFFSET 0
//获取总条数
$lists['total'] = InstrumentModel::where('status','2')->count();
//每页数量
$lists['per_page'] = 5;
//当前页
$lists['current_page'] = $page;
//最后一页页码
$lists['last_page'] = ceil($lists['total']/5);
//列表
$lists['data'] = Db::query($sql);
查询结果是
"data": {
"total": 5,
"per_page": 5,
"current_page": 1,
"last_page": 1,
"data": [
{
"id": 6,
"title": "标题111",
"image": "/assets/img/avatar.png"
},
{
"id": 7,
"title": "标题111",
"image": "/assets/img/avatar.png"
},
{
"id": 8,
"title": "标题111",
"image": "/assets/img/avatar.png"
},
{
"id": 9,
"title": "标题111",
"image": "/assets/img/avatar.png"
},
{
"id": 10,
"title": "标题111",
"image": "/assets/img/avatar.png"
}
]
}