我現在有一個表CREATE TABLE `test` (
  `id` int(10) NOT NULL auto_increment,
  `c_id` int(10) NOT NULL,
  `title` varchar(20) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=11 ;-- 
-- 导出表中的数据 `test`
-- INSERT INTO `test` VALUES (1, 1, 'aaa');
INSERT INTO `test` VALUES (2, 1, 'bbb');
INSERT INTO `test` VALUES (3, 2, 'ccc');
INSERT INTO `test` VALUES (4, 2, 'ddd');
INSERT INTO `test` VALUES (5, 2, 'eee');
INSERT INTO `test` VALUES (6, 3, 'fff');
INSERT INTO `test` VALUES (7, 3, 'qqq');
INSERT INTO `test` VALUES (8, 3, 'wwww');
INSERT INTO `test` VALUES (9, 3, 'ttt');
INSERT INTO `test` VALUES (10, 4, 'ggg');我要查詢得到分别 c_id 显示 2条 不夠2條的就只顯示一條.如果有多的則只顯示2條.

解决方案 »

  1.   

    参考下贴中的多种方法http://blog.csdn.net/acmain_chm/article/details/4126306
    [征集]分组取最大N条记录方法征集,及散分....
      

  2.   

    select c_id from tset limit 2;
      

  3.   


    INSERT INTO `test` VALUES (1, 1, 'aaa');
    INSERT INTO `test` VALUES (2, 1, 'bbb');
    INSERT INTO `test` VALUES (3, 2, 'ccc');
    INSERT INTO `test` VALUES (4, 2, 'ddd');
    INSERT INTO `test` VALUES (6, 3, 'fff');
    INSERT INTO `test` VALUES (7, 3, 'qqq');
    INSERT INTO `test` VALUES (10, 4, 'ggg');
      

  4.   

    SELECT * FROM `test` a WHERE 2>(SELECT COUNT(1) FROM `test` WHERE a.`c_id`=`c_id` AND a.`id`>`id`)