2017-11-03 17:02:12 4251次浏览 2条回答 0 悬赏 20 金钱

sql语句
1.png

yii2 写法

$today_study_count  = DbTodayStudy::find()
    ->orWhere(['user_id' => $params['user_id']])
    ->orWhere(['phone_oauth' => $params['phone_oauth']])
    ->andWhere(['>','create_time',$start_time])
    ->andWhere(['<','create_time',$end_time])
    ->groupBy(['day_num'])
    ->orderBy(['day_num' => SORT_DESC])
    ->limit(1)
    ->count('day_num');

2.png
请忽略create_time1的这个报错 是我故意把字段写错 主要是sql语句 出来一个子查询了 而且结果也是错误的
我把后面的count换成all的话 语句就没有问题
3.png

哪位大神给我说说什么情况 在线等

最后修改成的写法 能正确

$today_study_count  = DbTodayStudy::find()
    ->select('count(*)')
    ->orWhere(['user_id' => $params['user_id']])
    ->orWhere(['phone_oauth' => $params['phone_oauth']])
    ->andWhere(['>','create_time',$start_time])
    ->andWhere(['<','create_time',$end_time])
    ->groupBy(['day_num'])
    ->orderBy(['day_num' => SORT_DESC])
    ->limit(1)
    ->scalar();
  • 回答于 2017-11-06 13:53 举报

    加上要查询的具体字段,count(day_num) as number

    1 条回复
    回复于 2017-11-06 13:54 回复

    $model=(new \yii\db\Query())

            ->select('seek_id,sos_type_id,title,imgs,lose_pick_time,sos_lng,sos_lat,pet_imgs,user.grade,user.foster,user.officer')
            ->addSelect(["(POWER(MOD(ABS(sos_lng - ".$lng."),360),2) + POWER(ABS(sos_lng - ".$lat."),2)) AS distance"])
            ->from('sos')
    		->where('lng is not null')
            ->andWhere(['sos.is_show'=>1])
    		->leftJoin('user','user.id=sos.create_user_id')
    		->orderBy(['distance'=>SORT_ASC])
    		->orderBy(['lose_pick_time'=>SORT_DESC])
    		->limit(10)
    		->all();
    
您需要登录后才可以回答。登录 | 立即注册
jayrui612
禁止会员

jayrui612

注册时间:2017-03-24
最后登录:2019-05-27
在线时长:42小时30分
  • 粉丝12
  • 金钱3845
  • 威望170
  • 积分5965

热门问题