• mysql查询时去除重复数据以及 FOUND_ROWS 统计记录函数


    查询时都会遇到去除重复问题和统计总记录数的问题,所以总结下来,下次就要运用喔。(*^__^*) 嘻嘻……
     1、mysql中去除重复数据,使用distinct,将其放在查询字段首位或者是最后一位都会出错,要与关键字 group by 分组来结合使用。
    并且distinct field 要在查询字段首位, group by 字段放在sql语句之后。
    例如:
    select distinct userid,username,url,userid,title,catid,inputtime
           FROM nmsg_webyp_product
            WHERE username ='$q' or username like '%$q%' or username like '%$q' group by userid
    2、MySQL中有两个函数来计算上一条语句影响了多少行
    (1) 通常mysql 获取查询记录数我们使用如下语句 
      SELECT COUNT(*) FROM users WHERE k='avs';        
    或者是
      select count(id) from user where username ='lili';
    或者是
      select count(1) from user where username ='lili';
    或者是   SELECT id FROM goods WHERE username='lili' LIMIT 10;
    (2)统计查询的总记录数,还可以用mysql中的 FOUND_ROWS  函数来统计,例如:
       $sql = "SELECT SQL_CALC_FOUND_ROWS
              s.data ,c.companyname,p.title,p.inputtime,p.url,p.username
                     FROM
                       `nmsg_webyp_company` c
                     left JOIN nmsg_webyp_product p ON p.userid = c.userid
                     right join nmsg_websearch s on s.id = p.id
                     WHERE
                       c.companyname = '$q'
                        OR c.companyname LIKE '%$q'
                         OR c.companyname LIKE '%$q%'
                         OR s.data = '$q'
                         OR s.data LIKE '$q%'
                         OR s.data LIKE '%$q%'
                     GROUP BY
                         c.userid";
    $seaQuery = mysql_query($sql);
    $seaQuery = mysql_query("SELECT FOUND_ROWS() as total");
    此处如果是 SELECT FOUND_ROWS(),得到的结果如下,所以用另用别名容易获取,少些失误。
    Array
    (
        [FOUND_ROWS()] => 4
    )
    // 从结果集取得的一行作为关联数组
    $getTotal = mysql_fetch_array($seaQuery,MYSQL_ASSOC);
    $data = array();
    while ($res = mysql_fetch_array($comQuery,MYSQL_ASSOC)) {
      $data[] = $res;
    }

    // 取出总记录数
    $total = $getTotal['total'];
    当使用其他的框架,还没有熟悉其中封装好的mysql 语句和函数时,就可以很方便使用它了,~~~~ 嘻嘻~~~

    至于 FOUND_ROWS() 和count() 的效率问题,还没有去多次测试效率对比问题。



  • 相关阅读:
    python开发函数进阶:内置函数
    学习笔记之机器学习(Machine Learning)
    学习笔记之Visual Studio Code (VSCode) & Clang
    学习笔记之Supervised Learning with scikit-learn | DataCamp
    学习笔记之1001 Inventions That Changed the World
    学习笔记之Machine Learning by Andrew Ng | Stanford University | Coursera
    学习笔记之Everything
    学习笔记之HTML
    学习笔记之Python全栈开发/人工智能公开课_腾讯课堂
    学习笔记之曾国藩家书
  • 原文地址:https://www.cnblogs.com/enxixi/p/3783462.html
Copyright © 2020-2023  润新知