mysql的函数还是十分强大的,也许不能讨论的得很清楚,权当作自己笔记吧。
sum是就列的数字和。
eg:select sum(obj) from table
这样返回的就是table表中obj的和。但是我觉得一般的情况下,sum都应该和group by一起配合使用。group by就是分组了。
比如:select sum(obj) from table group by obj2
在进行sum计算时,值为null的字段是被忽略的。也就是说1 + null = 1。
而count则是计算指定列的和,比如如果有两条符合要求的数据,那么返回的就是2
比如:select count(*) from table where ooxx
也是灰常好用的。
count还有个用法就是discount了。
比如:select count(discount `id`) from table where ooxx
这样的话,返回的结果集里面,所有的id都是不同的,也就是说,discount会过滤掉id值相同的字段。
更加好的写法就是 select count(discount `id`) as id_t from table where ooxx
这样的话,count所得到的数据就会赋值给id_t,在返回的数据机构中,可以id_t就是count结果键值了。当然鸟,没有discount也是可以用as的。
count或者count(discount `ooxx`)返回的只是数字集合。
discount关键字的作用还是很好的,可以这样写 select discount id from table。这样的话,返回的就是不同的id了。
discontent关键字,在处理两个以上的对象时候,比如:select discount id, class from table 。
那么只有当id和class相同的时候才会过滤,而其中只有一条相同的时候是不过滤的。
在网上查了一下,发现count函数在没有where的情况下,效率是很高的,而在有where的情况下,则是有影响效率的,但是具体有多影响,还不知道,但是既然值得说出来,肯定还是有一些不小的影响的。
好鸟,就这么多鸟。