侧边栏壁纸
博主昵称
梦之中小俊

以前高中时,羡慕大学考试只要及格就行;现在大学了,怀念高中考试及不及格都行??

tp5 有点技巧性的sql语句

梦之中小俊
2021-07-14 / 0 评论 / 496 阅读 / 推送成功!
  1. in查询,默认会将查询的条件按数字正序排序,那我们不需要排序怎么办?

    $exp = new \think\db\Expression('field(id,'.implode(',',$province_ids).')');
    
    $list = Db::name('表名')->where(['id'=>['in',$province_ids],'status'=>1])->field('id,name')->order($exp)->select();
  2. 闭包查询,子查询

    $list = Db::name('dict_region')->where('id','IN',function($query) use($where){
    
                   $query->table('这里的表名要带前缀')->where($where)->field('province');
    
              })->field('id,name')->select();
  3. order排序里面使用函数

    $arr = Db::name('表名')
    
                    ->alias('a')
    
                    ->join('product_goods b','a.goods_id=b.id')
    
                    ->where($where)
    
                    ->group("a.goods_id")
    
                    ->orderRaw("sum(a.publish_num) desc")   //将a表的publish_num的和作为排序的标准
    
                    ->field("goods_id as id,b.name,sum(a.publish_num) as num")
    
                    ->select();
  4. wherOr的查询

    $list = Db::name('message')
    
                    ->alias('a')
    
                    ->join('user b','a.user_id=b.id')
    
                    ->where($where)
    
                    ->where(function ($query) use ($keywords) {
    
                        $query->whereOr(['username'=>['like','%'.$keywords.'%']])   //昵称模糊搜索
    
                        ->whereOr(['nickname'=>['like','%'.$keywords.'%']]);    //昵称模糊搜索
    
                    })
    
                    ->order('a.id desc')
    
                    ->select();
本文共 个字数,平均阅读时长 ≈ 分钟,您已阅读:0时0分0秒。
3

打赏

评论 (0)

OωO
  • ::(呵呵)
  • ::(哈哈)
  • ::(吐舌)
  • ::(太开心)
  • ::(笑眼)
  • ::(花心)
  • ::(小乖)
  • ::(乖)
  • ::(捂嘴笑)
  • ::(滑稽)
  • ::(你懂的)
  • ::(不高兴)
  • ::(怒)
  • ::(汗)
  • ::(黑线)
  • ::(泪)
  • ::(真棒)
  • ::(喷)
  • ::(惊哭)
  • ::(阴险)
  • ::(鄙视)
  • ::(酷)
  • ::(啊)
  • ::(狂汗)
  • ::(what)
  • ::(疑问)
  • ::(酸爽)
  • ::(呀咩爹)
  • ::(委屈)
  • ::(惊讶)
  • ::(睡觉)
  • ::(笑尿)
  • ::(挖鼻)
  • ::(吐)
  • ::(犀利)
  • ::(小红脸)
  • ::(懒得理)
  • ::(勉强)
  • ::(爱心)
  • ::(心碎)
  • ::(玫瑰)
  • ::(礼物)
  • ::(彩虹)
  • ::(太阳)
  • ::(星星月亮)
  • ::(钱币)
  • ::(茶杯)
  • ::(蛋糕)
  • ::(大拇指)
  • ::(胜利)
  • ::(haha)
  • ::(OK)
  • ::(沙发)
  • ::(手纸)
  • ::(香蕉)
  • ::(便便)
  • ::(药丸)
  • ::(红领巾)
  • ::(蜡烛)
  • ::(音乐)
  • ::(灯泡)
  • ::(开心)
  • ::(钱)
  • ::(咦)
  • ::(呼)
  • ::(冷)
  • ::(生气)
  • ::(弱)
  • ::(狗头)
泡泡
阿鲁
颜文字
取消
  1. 头像
    6767 Lv.1
    iPhone · Safari
    沙发

    画图

    回复
  2. 头像
    6767 Lv.1
    Windows 10 · Google Chrome
    板凳

    表情

    回复
  3. 头像
    透露 Lv.2
    Android · QQ Browser
    第30楼

    649494848

    回复