MySQL / Classic ASP - количество записей - PullRequest
1 голос
/ 17 января 2012

Я пытаюсь добавить количество всех возвращенных записей в мой запрос, но возникают некоторые проблемы. Это очень большой запрос, поэтому я не буду его публиковать.

Когда это выполняется, я получаю все записи, но 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

Ответы [ 2 ]

2 голосов
/ 17 января 2012

Возвращает 1, потому что вы группируете по тому, что хотите считать. Удалите предложение group by и столбец photoId, и вы получите количество записей.

group by говорит MySQL: «Для каждого отдельного PhotoID подсчитайте количество ненулевых PhotoID с». По определению это 1.

0 голосов
/ 20 января 2012

Попробуйте это:

selectClause = "SELECT COUNT(*) AS totalRecCount, photoID FROM photoSearch "
whereClause = "WHERE photoStatus = 'Live' "   
groupBy = "GROUP BY photoID "
SQL = selectClause & whereClause & groupBy
cmdConn.CommandText = SQL
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...