再SELECT 一次
$q = "SELECT COUNT(*) FROM `tablename` WHERE `fieldname` like '".$name."' ";
$q = "SELECT COUNT(*) FROM `tablename` WHERE `fieldname` like '".$name."' ";
解决方案 »
- 请各位大哥大姐帮我解答java和php的这个疑惑,谢谢!
- 如何把php里的变量赋值到javascript里的变量(两个变量不在一个文件)
- 有一段PHP代码,老是运行不正常,不知出错在哪,望高手指点
- php中什么情况用class
- php安全提问??
- 求救啊,mysql数据无缘无故消失,请高手指点原因
- sphinx 扩展模式
- 如何使添加的内容放到文本数据库的前面?
- ::在类中的意思?
- 菜鸟问题!
- 用session_set_save_handler来保存session文件时,sess_gc函数用写删除过期的处理过程吗?因为php.ini中也有这个时间,那么在此处,我还
- 请教一个问题,如何用php来获取当前网页的地址,并且含有参数的。详情请进
不过如果你使用mysq4.0以上版本则情况就要好一些
FOUND_ROWS()
返回最后一个 SELECT SQL_CALC_FOUND_ROWS ... 命令如果没有以 LIMIT 进行限制结果时将返回记录行数。
mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name
WHERE id > 100 LIMIT 10;
mysql> SELECT FOUND_ROWS();第二个 SELECT 将返回一个数字,它指示前一个没有被 LIMIT 子句限制的 SELECT 将返回多少行记录。注意,如果你使用 SELECT SQL_CALC_FOUND_ROWS ...,MySQL 不得不计算所有的记录行到结果集中。然而,这与你不使用 LIMIT 相比是更快一点的,因为结果集不需要发送到客户端。 SQL_CALC_FOUND_ROWS 从 MySQL 4.0.0 开始可以被使用。
2:用“唠叨”兄的方法,要 0.0761 秒。而单独取前10条数据,才只要 0.0009 秒,看来取总数太浪费时间了。
不过“唠叨”兄的方法,已经提高了一些效率,多谢。
FROM sp_article AS a
LEFT JOIN sp_article AS al ON al.typeid =1101
WHERE a.typeid = 1101
GROUP BY al.articleid
LIMIT 10
FROM sp_article AS a
LEFT JOIN sp_article AS al ON al.typeid =1101
WHERE a.typeid =1101
GROUP BY a.articleid
LIMIT 10