我有一个这样的数据库表结构:
--
-- Table structure for table `table_submissions`
--
CREATE TABLE IF NOT EXISTS `table_submissions` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Submission ID',
`item_name` bigint(20) unsigned NOT NULL COMMENT 'Item Name',
`status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '0 = pending, 1 = approved, -1 = denied',
PRIMARY KEY (`id`),
KEY `item_name` (`item_name`),
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
php $date_info = $db->fetchOne("SELECT * FROM table_submissions");
我需要编码php为"最需要的项目"顺序计数item_name limit 10
这意味着访问者需要的最多的item_name
将在顶部,然后++ 9
我相信你想要这个:
SELECT
item_name,
count(1)
FROM
table_submissions
GROUP BY
item_name
ORDER BY
count(1) DESC
LIMIT 10;
注意,这并没有考虑一个用户请求同一项1000次和1000个用户每个请求一次的情况。如果这对您很重要,那么您需要一种按用户ID过滤的方法。