enxixi
查询时都会遇到去除重复问题和统计总记录数的问题,所以总结下来,下次就要运用喔。(*^__^*) 嘻嘻……
 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() 的效率问题,还没有去多次测试效率对比问题。



分类:

技术点:

相关文章:

  • 2021-12-18
  • 2022-12-23
  • 2022-12-23
  • 2021-12-11
  • 2021-06-11
  • 2022-12-23
  • 2022-02-12
  • 2021-12-18
猜你喜欢
  • 2021-12-18
  • 2022-12-23
  • 2021-08-20
  • 2022-12-23
  • 2022-12-23
  • 2021-08-12
相关资源
相似解决方案