0

我目前正在学习如何在 PHP MySQL 中构建站点。但是,我似乎无法理解COUNT() as count并且不介意进一步解释。

我了解 , 的原理COUNT以及0 || 1它如何返回与该查询相关的所有值。

但是,看不到 COUNT 作为计数是如何工作的。无论如何,这就是我正在编写的代码的运行方式——所以我们有一个工作示例——也是我第一次感到困惑的地方。

"SELECT COUNT(id) as count, id
 FROM user
 WHERE email='$email' AND password='".md5$password."'"
4

4 回答 4

2

Count()您可以计算结果集的返回行数。还有关于count的官方 MySQL 文档:

数据库通常用于回答以下问题:“某种类型的数据在表中出现的频率如何?” 例如,您可能想知道您有多少只宠物,或者每个主人有多少只宠物,或者您可能想对您的动物执行各种类型的普查操作。

计算您拥有的动物总数与“宠物表中有多少行?”是同一个问题。因为每只宠物有一个记录。COUNT(*) 计算行数,因此计算动物数量的查询如下所示:

SELECT COUNT(*) FROM pet;

部分AS count意味着该列将获得一个您可以在例如 PHP 中使用的名称。另请参阅w3schools上的这个解释:

您可以使用别名为表或列指定另一个名称。如果您有非常长或复杂的表名或列名,这可能是一件好事。

别名可以是任何名称,但通常很短。

于 2012-11-24T12:26:06.973 回答
2

这就是所谓的别名,有时用于向用户或调用代码显示更吸引人的列标题

SELECT COUNT(`id`) as `count`....

将打印

count
--------
5

别名作为列标题而不是任何任意字符串:请参阅 SQLFiddle 以查看差异

从小提琴中你可以看到标题列看起来有点像

count(*)
--------
5
于 2012-11-24T12:29:46.070 回答
1

as count只是一个别名。您可以as用于选择的任何字段或方法。这意味着您更改了数据集中返回的列的名称。

SELECT `field` as another_name

所以:

SELECT COUNT(*) as `count`

只需将列重命名为 ,COUNT(*)以便count在您处理结果集的任何位置都更容易使用。

它还使您在当前查询中更容易访问。许多人会使用大表名执行以下操作:

SELECT * FROM `table_with_ridiculous_name` as twrn WHERE twrn.id = 1
于 2012-11-24T12:29:37.913 回答
0

如果你运行这个 sql:

SELECT COUNT(id), id ....

你会得到(在执行 *_fetch_assoc 之后)$row['numberofrecordshere']这将很难回显(或在比较中使用),除非你知道会有多少记录(无论如何这会破坏这个结果的目的)

将其作为计数返回允许您通过使用在结果数组中获取它$row['count']

于 2012-11-24T12:27:42.250 回答