相关疑难解决方法(0)

SQL_CALC_FOUND_ROWS/FOUND_ROWS()在PHP中不起作用

SQL_CALC_FOUND_ROWS在Mysql SELECT语句中使用,获取SELECT返回的行数而不使用LIMIT子句.

$sql = new mysqli('localhost', 'root', '');
$sql->select_db('mysql');
$s1 = $sql->query('select SQL_CALC_FOUND_ROWS * from db limit 0, 3');
$s2 = $sql->query('select FOUND_ROWS()');
if($row = $s2->fetch_row()) printf('%d/%d', $s1->num_rows, $row[0]);
Run Code Online (Sandbox Code Playgroud)

在我的WinXP开发站上,它每次都会返回3/0,持续数周.当我从我的工作站使用另一台MySQL服务器时,它也返回3/0.在其他PC上,相同的代码运行正常,并返回正确的数字(例如,如果我在mysql.db表中有17条记录,则为3/17).每台XP PC都有相同的PHP/Mysql版本,过去在我的电脑上运行正常使用Mysql查询浏览器和相同的SQL查询我得到了正确的数字.

任何人都可以给我一个解决方案的想法,而无需重新安装所有?

对不起,我以前的要求非常不清楚.

php mysql

18
推荐指数
2
解决办法
4万
查看次数

Django:如何计算查询集并返回切片而不会两次击中DB?

我的API中有这部分代码,最近已成为一个瓶颈:

total = results.count()
if request.GET.has_key('offset'):
    offset = int(request.GET.get('offset').strip())
    results = results.order_by('name')[100*offset:100*(offset+1)]
people = list(results)
Run Code Online (Sandbox Code Playgroud)

请注意,这results是所有人的查询集,并且offset是用于分页的参数.

在这里我可以看到,当我打印connection.queries,我的数据库中获取由打两.count()list(results).之所以.count()必须处于最顶端是因为我需要所有人的长度(不是100).有没有办法解决这个问题?

python mysql django

8
推荐指数
1
解决办法
759
查看次数

如何计算所有记录但只检索(LIMIT)一个特定的数字进行显示?

我想只回显前10行,但我需要计算查询影响的总行数.

我正在做一个LIMIT 10然后用明显的问题来计算我一直得到10作为计数.

什么是正确的方法呢?

$data = mysql_query("SELECT * FROM Badges WHERE UID = '$user' ORDER by Date DESC");
$count = mysql_num_rows($data);

while($row = mysql_fetch_array( $data )) 
    { 
    echo $row['Site'];
    }
Run Code Online (Sandbox Code Playgroud)

mysql pagination

5
推荐指数
1
解决办法
4773
查看次数

标签 统计

mysql ×3

django ×1

pagination ×1

php ×1

python ×1