MySQL/Classic ASP-记录计数
我正在尝试将所有返回记录的计数添加到查询中,但有一些问题。这是一个非常大的查询,所以我不会全部发布 当执行此操作时,我得到所有记录,但count rs.Fields(“totalRecCount”)总是返回1。有人能看出我做错了什么并提出解决方案吗 这是最上面的部分: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
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
。