我有一个数据库表'销售清单'。这是属于用户销售公会id的销售记录行。我想按每个用户的销售数量从高到低查询表和订单结果。
我本以为这个问题能解决的,可惜不行。。。

$total_query = "SELECT *, COUNT(users_sales_guild_id) AS users_sales_guild_id_count FROM sales_list WHERE sales_entry_date BETWEEN '2013-10-01 00:00:00' AND '2014-11-30 23:59:59' ORDER BY users_sales_guild_id_count DESC";
$total_rs = mysql_query($total_query) or trigger_error ("Query: $total_query\n<br>MySQL Error: " .@mysql_error()); // Run the query.
$num_rs = mysql_num_rows($total_rs);

此查询返回1条记录。而不是按每个用户的销售数量排序的一系列记录。
非常欢迎你的帮助。

最佳答案

除非有GROUPBY子句,否则count(*)将返回一行,因此查询应为

SELECT *,
COUNT(*) AS users_sales_guild_id_count
FROM sales_list
WHERE sales_entry_date BETWEEN '2013-10-01 00:00:00' AND '2014-11-30 23:59:59'
group by users_sales_guild_id
ORDER BY users_sales_guild_id_count DESC

更新:最好选择col1,col2。。。。。而不是在做由InoSHeo提出的逐点
检查此链接
http://sqlfiddle.com/#!2/1201d/6

关于php - 搜索MySQL数据库,按COUNT排序结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23864822/

10-11 19:29
查看更多