计算MySQL查询中总行数的一种方便方法是保存计数(*)
sql_calc_found_rows
发现该关键字的作用是计算查询时满足过滤条件的结果的总数(不受限制)。
例如:
复制代码代码如下所示:
选择从哪里sql_calc_found_rows TID cdb_threads FID = 14极限咯;
假设有1000个条件满足,10个返回这里。
立即使用
复制代码代码如下所示:
选择found_rows()为行数;
返回的行数是1000;
这节省了重复查询的select count(*)为行数,节省了大量的时间。
以下是游泳品味的运用:
复制代码代码如下所示:
功能mail_list_sent($ UID,美元开始){
注意有UID / / sql_calc_found_rows之间没有逗号
为查询= 选择sql_calc_found_rows UID,real_name,current_city,msg_uid,sender_flag,。
msg_title,从msg_content。tt_dbtablepre。邮箱MB1,。tt_dbtablepre。
用户usr1,MB1。sender_id = usr1.uid和MB1。sender_id = $ 0美元的UID和sender_flag >限制开始,。
为邮件=美元->数据库-> fetch_all($查询);
查询以满足选择中的行数条件,与限制子句无关。
max_count美元=美元->数据库-> fetch_first(选择found_rows()作为行);
'state_code} = { $ TMP 200;
{ } = 'info TMP美元好的;
'list} = { $ TMP为邮件;
数据json_encode美元($ TMP);
返回$数据;
}