thinkphp group by count如何同时使用?分页用到
taotaoit ThinkPHP 2020-12-15 2249 0
关于本站

“最难不过坚持”

本人承接扒站仿站,php网站维护,病毒查杀,网站编辑,网站改版,html制作

有需要网站维护,改版,病毒查杀,网站编辑,网站备案,html制作等相关的工作可以联系我。
本人有多年相关工作经验,也可提供免费咨询,交个朋友。
有需要探讨问题的朋友,也可以加我微信,共同探讨!
微信:15011482830 QQ:408917339

6554803 2620 39
最新评论
https://jueru.net/
评 留言
:weixiao:
评 留言
:shuijiao: :weiqu: :zhenbang: :leng:
评 留言
:yiwen: :yiwen: :yiwen: :yiwen:
评 EasySass: could not generate CSS file. See Output panel for details.
这个业务逻辑多少都有点奇怪了,阅读浏览次数增值在新闻详情页的控制器方法里setInc,这怎么还写进模型事件里了。如果非要用onAfterRead也可以,把新闻文章的内容单独分出来一个news_content表,然后把它和news做关联,然后给news_content表的onAfterRead事件做增值处理,这样点进新闻页内查询到文章内容时才会触发它。
评 TP6模型事件-查询后onAfterRead不好用
文章标签更多
ThinkPHP (254)
Mysql (58)
DedeCms (33)
jQuery (67)
证件照 (1)
setInc (4)
setDec (4)
onclick (5)
打开边栏(ESC) 关闭边栏(ESC)

分页前,需要获取记录条数

$count = M('abc')->where($where)->count();

但是, 如果查询还需要使用到 GROUP BY的话

$count = M('video_log')->where($where)->group('ip')->count();

这样是等不到正确条数的,得到的还是总条数

怎样实现呢,需要借助原生sql语句

方法1:参考网址https://www.qiusuoweb.com/71.html

//SQL_CALC_FOUND_ROWS记录查询条数
//在测试中发现,mysql5.7中添加关键词SQL_CALC_FOUND_ROWS不是必须的。
Db::query("select SQL_CALC_FOUND_ROWS date('time') as date from users group by date");
//found_rows()获取以上查询记录的条数
$count = Db::query("select found_rows() as count");

自己用

Db::query("select * from my_video_log group by ip");
$count = Db::query("select found_rows() as count");

方法2:参考网址https://blog.csdn.net/weixin_37946518/article/details/89550409

SELECT COUNT(DISTINCT column_1, column_2) FROM tablename WHERE conditions
其中第二条的 column_1, column_2与第一条的GROUP BY 后的字段要保持一致(字段数量和顺序)

自己用

$rs = Db::query("SELECT COUNT(DISTINCT ip) as count FROM my_video_log");
$count = $rs[0]['count'];


版权声明:本站原创文章,允许自由转载。

相关推荐
ThinkPHP 3.2.3 Runtime\Logs日志文件太多怎么关闭日志功能
ThinkPHP | 2019-11-05 6878
'LOG_RECORD' => false, // 默认不记录日志 'LOG_TYPE' => 'File', // 日志记录类型 默认为文件方式 'LOG_LEVEL' => 'EMERG,ALERT,CRIT,ERR',// 允许记录的...
ThinkPHP3.2.3打印sql语句
ThinkPHP | 2018-12-29 5479
方法一 echo M()->getLastSql(); 方法二 echo M()->_sql();
评论:0条
评论加载中...
发表评论