表结构为
   ip                                              phone_type
   192.168.1.100                                   Mozilla/5.0 (iPhone)  
   192.168.1.100                                   Nokia6120c/7.20;
   192.168.1.101                                   Mozilla/5.0 (iPhone)
   192.168.1.103                                   Nokia6120c/7.20;
   192.168.1.100                                   Mozilla/5.0 (iPhone) 要求   同ip 和同设备只算一条记录。。求有多少条记录?sql语句写出来。3q

解决方案 »

  1.   

    select count(distinct ip,phone_type) from table_name
      

  2.   

    楼主最好给出你的正确结果。比如你提供的例子来说,返回应该是多少?如果
      192.168.1.100                                   Mozilla/5.0 (iPhone) 
      192.168.1.100                                   Nokia6120c/7.20;
    算两条,则用1楼的DISTINCT就行了。
    如果  192.168.1.100                                   Mozilla/5.0 (iPhone) 
      192.168.1.100                                   Nokia6120c/7.20;
      192.168.1.101                                   Mozilla/5.0 (iPhone)这三条只算一条,则算法比较复杂一点儿。 (不要高估你的汉语表达能力或者我的汉语理解能力)
       建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
       
       1. 你的 create table xxx .. 语句
       2. 你的 insert into xxx ... 语句
       3. 结果是什么样,(并给以简单的算法描述)
       4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。   
      

  3.   

    当您的问题得到解答后请及时结贴.
    http://topic.csdn.net/u/20090501/15/7548d251-aec2-4975-a9bf-ca09a5551ba5.html
    http://topic.csdn.net/u/20100428/09/BC9E0908-F250-42A6-8765-B50A82FE186A.html
    http://topic.csdn.net/u/20100626/09/f35a4763-4b59-49c3-8061-d48fdbc29561.html8、如何给分和结贴?
    http://community.csdn.net/Help/HelpCenter.htm#结帖
      

  4.   

    mysql> select * from asdaa;
    +---------------+----------------------+
    | ip            | phone_type           |
    +---------------+----------------------+
    | 192.168.1.100 | Mozilla/5.0 (iPhone) |
    | 192.168.1.100 | Nokia6120c/7.20      |
    | 192.168.1.101 | Mozilla/5.0 (iPhone) |
    | 192.168.1.103 | Nokia6120c/7.20      |
    | 192.168.1.100 | Mozilla/5.0 (iPhone) |
    +---------------+----------------------+
    5 rows in set (0.00 sec)mysql> select count(*) from asdaa;
    +----------+
    | count(*) |
    +----------+
    |        5 |
    +----------+
    1 row in set (0.00 sec)mysql> select count(distinct ip,phone_type) from asdaa;
    +-------------------------------+
    | count(distinct ip,phone_type) |
    +-------------------------------+
    |                             4 |
    +-------------------------------+
    1 row in set (0.00 sec)楼主不是要这样的结果?那楼主把需要的结果给贴出来;
      

  5.   

    因为第一次发帖!所以可能有些说的不清楚!现在说清楚点!!! 我用的数据库版本是mysql5.1.47
    MySQL Data TransferSET FOREIGN_KEY_CHECKS=0;
    -- ----------------------------
    -- Table structure for lk
    -- ----------------------------
    DROP TABLE IF EXISTS `lk`;
    CREATE TABLE `lk` (
      `ip` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
      `phone_type` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;-- ----------------------------
    -- Records 
    -- ----------------------------
    INSERT INTO `lk` VALUES ('192.168.1.100 ', 'Mozilla/5.0 (iPhone) ');
    INSERT INTO `lk` VALUES ('192.168.1.100 ', 'Nokia6120c/7.20;\r\nNokia6120c/7.20;\r\nNokia6120c/7.20;\r\nNokia6120c/7.20');
    INSERT INTO `lk` VALUES ('192.168.1.101 ', 'Mozilla/5.0 (iPhone)\r\nMozilla/5.0 (iPhone)\r\nMozilla/5.0 (iPhone)\r\nMozilla/5.0 (iPhone)\r\nMozilla/5.0 (iPhone)\r\n');
    INSERT INTO `lk` VALUES ('192.168.1.103', 'Nokia6120c/7.20');
    INSERT INTO `lk` VALUES ('192.168.1.100', 'Mozilla/5.0 (iPhone)');
    结果应该为:
    192.168.1.100 Mozilla/5.0 (iPhone)
    192.168.1.100 Nokia6120c/7.20;
    192.168.1.101 Mozilla/5.0 (iPhone)
    192.168.1.103 Nokia6120c/7.20;
    4条结果!!!不知道这样清楚没!