如何返回此查询返回的行数而不是查询结果:
SELECT collections.name, collections.description, collections.collection_id, collections.name, collections.description, collections.date, users.name
FROM users, collections
WHERE collections.user_id = users.user_id
AND (
collections.description LIKE "%%searchTerm%%"
OR collections.name LIKE "%%searchTerm%%"
OR users.name LIKE "%%searchTerm%%"
)
AND (
reported = false
OR (
reviewed = true
AND approved = true
)
)
答案 0 :(得分:0)
两种方式,你可以
SELECT count(*)
FROM...
将以实际数据为代价返回计数,或者您可以使用您用于查询数据库的任何语言的函数来检查有多少行。
答案 1 :(得分:0)
您可以使用count(1)或count(collections.collection_id)
SELECT
count(collections.collection_id)
FROM
users,
collections
WHERE
collections.user_id = users.user_id
AND (
collections.description LIKE "%%searchTerm%%"
OR collections.name LIKE "%%searchTerm%%"
OR users.name LIKE "%%searchTerm%%"
)
AND (
reported = false
OR (
reviewed = true
AND approved = true
)
)
答案 2 :(得分:0)
另请参阅FOUND_ROWS()以及SQL_CALC_FOUND_ROWS http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_found-rows
它可能比使用COUNT(*)执行一个查询以及另一个获取数据更好。
即可以运行一个查询来获得结果 - 同时获取计数。 (好吧,你仍然使用两个查询,但第二个是便宜的,它只是获取计算的总数)