2019-03-14 18:20:54 1664次浏览 1条回答 0 悬赏 10 金钱
SELECT count(*) as count,DATE_FORMAT(add_time,'%Y-%m-%d') as time FROM `service_ask` WHERE (`add_time` > '2017-03-01 00:00:00') AND (`add_time` < '2019-03-14 00:00:00') GROUP BY DATE_FORMAT(add_time,'%Y-%m-%d') ORDER BY `add_time` DESC LIMIT 100;

我这个语句在 mysql 里面运行是没问题的,可以查出来数据,主要是 group by 分组的问题,但是在 yii 里面这样写,就不行了,这是怎么回事呢?谢谢大佬

$query->select('count(*) as count')
    ->limit($pageSize)
    ->offset(($page - 1) * $pageSize)
    ->groupBy("DATE_FORMAT(add_time,'%Y-%m-%d')");
    $query->orderBy("add_time desc");
echo $query->createCommand()->getRawSql();die;

SELECT count(*) as count, DATE_FORMAT(add_time, `"%Y-%m-%d")` AS `time` FROM `service_ask` WHERE (`add_time` > '2017-03-01 00:00:00') AND (`add_time` < '2019-03-14 00:00:00') GROUP BY `time` ORDER BY `add_time` DESC LIMIT 100
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM `service_ask` WHERE (`add_time` > '2017-03-01 00:00:00') AND (`add_time` < ' at line 3
时间: 0.01s

最佳答案

  • 醉丶春风 发布于 2019-03-15 13:41 举报

    ->groupBy(["DATE_FORMAT(add_time,'%Y-%m-%d')"]);
    把group条件写在数组里面就可以了, 你写成字符串会自动补上 ``, 现在这个补出来格式已经错了

    1 条回复
    回复于 2019-03-15 14:32 回复

    果然可以了呢,谢谢大佬

    没有找到数据。
您需要登录后才可以回答。登录 | 立即注册
PHP学院的中学生
副总裁

PHP学院的中学生

注册时间:2018-10-23
最后登录:2024-04-07
在线时长:168小时1分
  • 粉丝29
  • 金钱4730
  • 威望30
  • 积分6710

热门问题