使用php的mysql中最需要的项目

时间:2013-03-21 22:37:49

标签: php sql

我有这样的db表结构:

--
-- 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");

我需要按计数item_name limit 10

为“最需要的项目”命令编写php

这意味着访问者被要求的item_name最多,它将位于顶部然后++ 9

我怎么能这样做?

1 个答案:

答案 0 :(得分:3)

我相信你想要这个:

SELECT 
    item_name, 
    count(1) 
FROM 
    table_submissions 
GROUP BY 
    item_name 
ORDER BY 
    count(1) DESC 
LIMIT 10;

请注意,这并未考虑一个用户请求相同项目1000次,而1000个用户每次请求一个项目。如果这对您很重要,那么您需要一种按用户ID过滤的方法。