MySQL/Classic ASP-记录计数

MySQL/Classic ASP-记录计数,mysql,asp-classic,Mysql,Asp Classic,我正在尝试将所有返回记录的计数添加到查询中,但有一些问题。这是一个非常大的查询,所以我不会全部发布 当执行此操作时,我得到所有记录,但count rs.Fields(“totalRecCount”)总是返回1。有人能看出我做错了什么并提出解决方案吗 这是最上面的部分: Set cmdConn = Server.CreateObject("ADODB.Command") Set cmdConn.ActiveConnection = Conn cmdConn.Prepared = True Con

我正在尝试将所有返回记录的计数添加到查询中,但有一些问题。这是一个非常大的查询,所以我不会全部发布

当执行此操作时,我得到所有记录,但count rs.Fields(“totalRecCount”)总是返回1。有人能看出我做错了什么并提出解决方案吗

这是最上面的部分:

Set cmdConn = Server.CreateObject("ADODB.Command")
Set cmdConn.ActiveConnection = Conn
cmdConn.Prepared = True

Const ad_varChar = 200
Const ad_ParamInput = 1
Const ad_Integer = 3

selectClause = "SELECT COUNT(photoID) AS totalRecCount, photoID FROM photoSearch "
whereClause = "WHERE photoStatus = 'Live' "
这是最下面的部分:

groupBy = "GROUP BY photoID "
orderClause = "ORDER BY dateCreated DESC "

SQL = selectClause & whereClause & groupBy & orderClause & limitClause
cmdConn.CommandText = SQL

Set rsPhotoSearch = cmdConn.Execute

它返回1,因为您正在按要计数的对象进行分组。删除
groupby
子句和
photoId
列,您将获得记录计数

groupby
告诉MySQL,“对于每个不同的
PhotoID
,计算非空的
PhotoID
s的数量。”根据定义,这是1。

尝试以下方法:

selectClause = "SELECT COUNT(*) AS totalRecCount, photoID FROM photoSearch "
whereClause = "WHERE photoStatus = 'Live' "   
groupBy = "GROUP BY photoID "
SQL = selectClause & whereClause & groupBy
cmdConn.CommandText = SQL

您/我们需要知道的只是最后一个SQL子句。您的
limitClause
GROUP BY
上做什么?我不知道@p.campbell,这就是为什么我得到帮助我需要选择照片IDcolumn@MartinG-然后选择它。MySQL允许您选择不包含
group by
子句的列,即使使用了聚合函数。这是我花时间研究过的唯一一个能做到这一点的RDBMS。无论如何,要意识到该记录集将给您带来什么:每个
photoID
都有相同的记录计数。因此,如果您有87条记录,那么每一行都将是
87,photoID