查询条件和条数,先查询两条免费的,后面为vip

表里有个字段level,为1时免费,为2时只有vip可在观看,
查询列表时,怎么一条sql查询出前两条为免费的,后面均为vip的
哪位神给点意见

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 6

union(或union all) SELECT * FROM 文章表名 WHERE level ='2 'UNION ALL (SELECT * FROM 文章表名 WHERE level ='1' LIMIT 0,2) ORDER BY level LIMIT 0,15; :smiley: :smiley: :smiley: :smiley:

1个月前 评论
lchola 1个月前
颠倒的玉石 3周前

应该先判断身份吧 vip就不用限制查询 不是vip就限制level = 1的

1个月前 评论
laravelUsers (楼主) 1个月前
PostModel::where(function (Builder $builder){
            if (\Auth::user()->is_vip === true) {
                $builder->where('level',2);
            } else {
                $builder->where('level',1);
            }
        })->get();
1个月前 评论
laravelUsers (楼主) 1个月前

union(或union all) SELECT * FROM 文章表名 WHERE level ='2 'UNION ALL (SELECT * FROM 文章表名 WHERE level ='1' LIMIT 0,2) ORDER BY level LIMIT 0,15; :smiley: :smiley: :smiley: :smiley:

1个月前 评论
lchola 1个月前
颠倒的玉石 3周前

其实比较适合查询出来以后后端再做处理。只有前2两条正常显示,后面的数据做特殊处理

1个月前 评论
tumobi

分两次查吧,第一次查两条免费的;后一次查vip的。最后合并。 程序可以轻松解决的,就不要为难 SQL 了。

1个月前 评论

用level字段排序一下,就满足这个目的咯

1个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!