码迷,mamicode.com
首页 > 数据库 > 详细

mysql bit_or() bit_count()函数

时间:2015-03-10 19:52:19      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:

bit_count函数的含义

用来计算二进制数中包含1的个数。

select bit_count(10);
因为10转成二进制是1010,所以该结果就是2。

bit_or函数的含义

就是对两个二进制数进行或运算。如:

    1100
或  0101
--------------
    1101


mysql官网手册示例,使用bit_or()  bit_count()巧妙地过滤掉重复的日期:

The following example shows how you can use the bit group functions to calculate the number of days per month a user has visited a Web page.

CREATE TABLE t1 (year YEAR(4), month INT(2) UNSIGNED ZEROFILL,
             day INT(2) UNSIGNED ZEROFILL);
INSERT INTO t1 VALUES(2000,1,1),(2000,1,20),(2000,1,30),(2000,2,2),
            (2000,2,23),(2000,2,23);

The example table contains year-month-day values representing visits by users to the page. To determine how many different days in each month these visits occur, use this query:

SELECT year,month,BIT_COUNT(BIT_OR(1<<day)) AS days FROM t1
       GROUP BY year,month;

Which returns:

+------+-------+------+
| year | month | days |
+------+-------+------+
| 2000 |    01 |    3 |
| 2000 |    02 |    2 |
+------+-------+------+

mysql bit_or() bit_count()函数

标签:

原文地址:http://my.oschina.net/lhplj/blog/384960

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!