为什么FOUND_ROW()在没有将函数放入SELECT语句的情况下工作?

时间:2017-08-27 19:07:46

标签: php mysql sql pdo

这是我的代码:

$query = "SELECT SQL_CALC_FOUND_ROWS 1, id, name
                FROM users where id > ?";
$sth = $this->dbh->prepare($query);
$sth->execute([4]);
echo $total_num = $this->dbh->query('SELECT FOUND_ROWS()')->fetchColumn();
//=> 43

我的代码也能正常工作并打印43

我的问题是,当我从SQL_CALC_FOUND_ROWS 1语句中删除SELECT时,为什么我的代码仍然有效?

$query = "SELECT id, name
                FROM users where id > ?";
$sth = $this->dbh->prepare($query);
$sth->execute([4]);
echo $total_num = $this->dbh->query('SELECT FOUND_ROWS()')->fetchColumn();
//=> 43

请参阅?它仍会打印43。那么SQL_CALC_FOUND_ROWS 1语句中的SELECT是强制性的吗?无论如何我们为什么要把它放在那里?

0 个答案:

没有答案