Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1737491
  • 博文数量: 636
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 3950
  • 用 户 组: 普通用户
  • 注册时间: 2014-08-06 21:58
个人简介

博客是我工作的好帮手,遇到困难就来博客找资料

文章分类

全部博文(636)

文章存档

2024年(5)

2022年(2)

2021年(4)

2020年(40)

2019年(4)

2018年(78)

2017年(213)

2016年(41)

2015年(183)

2014年(66)

我的朋友

分类: 系统运维

2014-12-02 15:51:13

1、
$query="select count(*) as total from User"中 count是什么意思as total是什么意思
count(*) 是计算user表中的记录条数,也就是用户数量,as total只是为了给count(*)起一个别名,为了更好的识别count(*)的意义
 
2、
		

         这几天用到mysql数据库,对于count(*)用法知之甚少,无奈要反复用到,所以对于count的用法搜集了不少资料,总结一些比较常用的用法,在此,也特别感谢网络上诸多朋友的分享。    1. count不重复的记录条数       SELECT   COUNT(DISTINCT id) FROM  tablename;

   2. 需要返回记录不同的id的具体值       SELECT    DISTINCT    id    FROM   tablename;    3. 上面的情况2对于需要返回mysql表中2列以上的结果时会有歧义       比如  SELECT   DISTINCT  id,type   FROM  tablename;       实际上返回的是id  与 type 同时不相同的结果,也就是DISTINCT 同时作用了两个字段, 必须得id  与 type 都相同的才被排除了,与我们期望的可能不一样。    4. 这时候可以考虑使用group_concat 函数来进行排除,不过这个mysql函数是在mysql 4.1以上才支持的    5. 其实还有另外一种解决方法,就是使用       SELECT id,type,count(DISTINCT id) FROM  tablename;       显然这样的返回结果多了一列无用的count数据(或许你就需要这个数据)       返回的结果是, 只有id不同的所有结果和上面的4类型可以互补使用,看你需要什么数据了           PS:       SELECT   count(*) FROM  tablename;  即使对于千万级别的数据mysql也能非常迅速的处理      而对于       SELECT  count(*)  FROM  tablename  WHERE…       mysqsl的查询时间开始攀升
 
3、
		

计算你拥有动物的总数目与“在pet表中有多少行?”是同样的问题,因为每个宠物有一个记录。COUNT(*)函数计算行数,所以计算动物数目的查询应为:

mysql> SELECT COUNT(*) FROM pet; +----------+ | COUNT(*) | +----------+ |        9 | +----------+ 在前面,你检索了拥有宠物的人的名字。如果你想要知道每个主人有多少宠物,你可以使用COUNT( )函数:

mysql> SELECT owner, COUNT(*) FROM pet GROUP BY owner; +--------+----------+ | owner  | COUNT(*) | +--------+----------+ | Benny  |        2 | | Diane  |        2 | | Gwen   |        3 | | Harold |        2 | +--------+----------+ 注 意,使用GROUP BY对每个owner的所有记录分组,没有它,你会得到错误消息:

mysql> SELECT owner, COUNT(*) FROM pet; ERROR 1140 (42000): Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause COUNT( )和GROUP BY以各种方式分类你的数据。下列例子显示出进行动物普查操作的不同方式。

每种动物的数量:

mysql> SELECT species, COUNT(*) FROM pet GROUP BY species; +---------+----------+ | species | COUNT(*) | +---------+----------+ | bird    |        2 | | cat     |        2 | | dog     |        3 | | hamster |        1 | | snake   |        1 | +---------+----------+ 每种性别的动物数量:

mysql> SELECT sex, COUNT(*) FROM pet GROUP BY sex; +------+----------+ | sex  | COUNT(*) | +------+----------+ | NULL |        1 | | f    |        4 | | m    |        4 | +------+----------+ (在这个输 出中,NULL表示“未知性别”。)

按种类和性别组合的动物数量:

mysql> SELECT species, sex, COUNT(*) FROM pet GROUP BY species, sex; +---------+------+----------+ | species | sex  | COUNT(*) | +---------+------+----------+ | bird    | NULL |        1 | | bird    | f    |        1 | | cat     | f    |        1 | | cat     | m    |        1 | | dog     | f    |        1 | | dog     | m    |        2 | | hamster | f    |        1 | | snake   | m    |        1 | +---------+------+----------+ 若 使用COUNT( ),你不必检索整个表。例如, 前面的查询,当只对狗和猫进行时,应为:

mysql> SELECT species, sex, COUNT(*) FROM pet     -> WHERE species = 'dog' OR species = 'cat'     -> GROUP BY species, sex; +---------+------+----------+ | species | sex  | COUNT(*) | +---------+------+----------+ | cat     | f    |        1 | | cat     | m    |        1 | | dog     | f    |        1 | | dog     | m    |        2 | +---------+------+----------+ 或, 如果你仅需要知道已知性别的按性别的动物数目:

mysql> SELECT species, sex, COUNT(*) FROM pet     -> WHERE sex IS NOT NULL     -> GROUP BY species, sex; +---------+------+----------+ | species | sex  | COUNT(*) | +---------+------+----------+ | bird    | f    |        1 | | cat     | f    |        1 | | cat     | m    |        1 | | dog     | f    |        1 | | dog     | m    |        2 | | hamster | f    |        1 | | snake   | m    |        1 | +---------+------+----------+
阅读(605) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~