SQL视图不显示所有计数结果

时间:2013-09-09 21:11:09

标签: sql view count phpmyadmin

我在phpMyAdmin中创建了一个视图,该视图中有37个结果,但它只显示了30个计数结果。

如果我输入如下声明

SELECT COUNT(*) FROM `vwk_activity` LIMIT 0,30

显示计数为37的结果,但是如果我尝试

SELECT COUNT(*) FROM `vwk_activity` LIMIT 30,30

它返回空。如果我输入

SELECT COUNT(*) FROM `vwk_activity` LIMIT 50

那也会返回37。

这是我正在尝试做的一个例子

// Set Page Limit
$page_limit = 30;
// Get Page Number
if (!isset($_GET['page']) ){$start=0;} else {$start = ($_GET['page'] - 1) * $page_limit;}
/* Check if Activity in DB */
try {
    $rs_check = $dbh->prepare("SELECT COUNT(*) FROM `vwk_activity` LIMIT ".$start.",".$page_limit);
    $rs_check->execute();
} catch (PDOException $e) {
    print "There was an error: " . $e->getMessage() . "<br/>";
    die();
}
$total = $rs_check->fetchColumn();

这适用于我的很多其他页面,但由于某种原因,它不适用于此页面。

我不确定提供什么信息来帮助解决这个问题,所以请问。 :)

2 个答案:

答案 0 :(得分:1)

select count(*)将表中的记录计数返回给您一行...而不是每个记录计数1行。如果计数为2000万,它将返回1行,其中有2000万。

所以这个查询只返回1行。限制0,30和限制50都返回第一行和唯一一行表示37.限制30,30在这种情况下将不返回任何内容,因为它从第30行返回30行(这不存在,因为它只返回一行)

如果您想为每条记录看一行,请尝试从...中选择*。

答案 1 :(得分:0)

在config.inc.php中尝试:

$ cfg ['MaxExactCountViews'] = 1000;

默认情况下,phpMyAdmin不计算视图的行数,这会在导航中产生问题。使用此值,您应该看到导航控件以达到七个缺失的行。