`
nakupanda
  • 浏览: 416606 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

mysql bit_count / bit_or

 
阅读更多
下面的例子显示了如何使用位组函数来计算每个月中用户访问网页的天数。

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 );

示例表中含有代表用户访问网页的年-月-日值。可以使用以下查询来确定每个月的访问天数:

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

        GROUP   BY   year , month ;

将返回:

+ -- ----+-------+------+

|   year   |   month   |  days  |

+ -- ----+-------+------+

|   2000   |      01   |      3   |

|   2000   |      02   |      2   |

+ -- ----+-------+------+

该查询计算了在表中按年 / 月组合的不同天数,可以自动去除重复的询问。
上面例子中的查询语句:

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




中的”BIT_COUNT(BIT_OR(1<<day))

“用法比较有技巧。

1、BIT_COUNT( expr ):返回 expr 的二进制表达式中”1“的个数。
        例如:29 = 11101 则:BIT_COUNT(29)= 4;
2、BIT_OR( expr ):返回 expr 中所有比特的bitwise OR。计算执行的精确度为64比特(BIGINT) 。

    例如:上面例子中,2000年02月中有一条2号的记录两条23号的记录,所以"1<<day"表示出来就是 “1<<2”和“1<<23”,得到二进制数 100 和 100000000000000000000000 。然后再OR运算。即 100 OR 10000000000000000000000 OR 10000000000000000000000 = 100000000000000000000100;这样再用BIT_COUNT处理得出的值就是2,自动去除了重复的日期。

forwarded from : http://bbs.chinaunix.net/archiver/?tid-1510005.html
分享到:
评论

相关推荐

    Mysql函数手册.rar_MySQL函数手册_VZI_mysql 函数手册

    7. 位操作函数:如BIT_AND()、BIT_OR()和BIT_XOR()用于进行二进制位运算。 8. 信息函数:如DATABASE()返回当前数据库名,USER()获取当前用户名,VERSION()显示MySQL版本信息。 手册还可能包含关于聚合函数(如...

    mysql5.0版本下载地址集合

    MySQL 5.0是MySQL数据库管理系统的一个重要版本,它在SQL查询、性能优化以及稳定性方面都有显著提升。本文将详细探讨MySQL 5.0的主要特点、功能和下载安装的注意事项。 1. MySQL 5.0的主要特性: - **InnoDB存储...

    25.4 MySQL 函数

    2. **位操作**:`BIT_AND()`, `BIT_OR()`, `BIT_XOR()`进行位运算,`BIT_COUNT()`计算位集中的1的个数。 这些函数在实际开发中非常常用,理解并熟练运用它们能极大地提高数据库操作的效率。例如,在数据分析时,...

    MySQL数据库应用案例视频教程下载第6讲 MySQL函数.zip

    8. **位操作函数**:对于需要进行二进制位操作的场景,MySQL提供了BIT_AND(), BIT_OR(), BIT_XOR()等函数。 在学习过程中,你将通过实际操作和案例分析来理解并掌握这些函数的用法,从而提升你在MySQL数据库管理和...

    DoctrineExtensions:一组Doctrine 2扩展

    ACOS, ADDTIME, AES_DECRYPT, AES_ENCRYPT, ANY_VALUE, ASCII, ASIN, ATAN, ATAN2, BINARY, BIT_COUNT, BIT_XOR, CAST, CEIL, CHAR_LENGTH, COLLATE, CONCAT_WS, CONVERT_TZ, COS, COT, COUNTIF, CRC32, DATE, DATE...

    mysql内部函数

    - 包括位函数(如 `BIT_AND`, `BIT_OR`),加密函数(如 `ENCRYPT`, `AES_ENCRYPT`),信息函数(如 `USER`, `DATABASE`)以及其他特殊用途的函数。 10. **与GROUP BY子句同时使用的函数**: - `GROUP BY` 用于对...

    mysql-cheat-sheet-v1

    - `BIT_OR`:按位或。 - `BIT_AND`:按位与。 #### 控制流函数 控制流函数可用于根据条件改变SQL语句的行为,如: - `IFNULL`:如果第一个参数为 `NULL`,则返回第二个参数;否则返回第一个参数。 - `NULLIF`:...

    MySQL常用函数大全

    - **COUNT(col)**: 计算指定列`col`中非空值的数量。 - **MIN(col)**: 返回指定列`col`中的最小值。 - **MAX(col)**: 返回指定列`col`中的最大值。 - **SUM(col)**: 返回指定列`col`中所有值的总和。 - **GROUP_...

    MySQL常用函数的举例及例子

    ### MySQL常用函数详解 #### 一、数学函数 在MySQL中,数学函数是处理数值数据的基本工具之一。这些函数能够帮助我们执行简单的算术运算、数值转换以及进行数学计算。 - **ABS(x)**:返回`x`的绝对值。例如,`ABS...

    MySQL中字符串函数详细介绍[转][定义].pdf

    18. REPEAT(str, count): 重复`str``count`次。如REPEAT('M', 3)返回'MMM'。 19. LTRIM(str): 删除`str`左侧的空格。 20. RTRIM(str): 删除`str`右侧的空格。 以上只是MySQL字符串函数的一部分,实际上还有更多...

    MYSQL基础命令使用

    MySQL是世界上最受欢迎的关系型数据库管理系统之一,用于存储和管理各种数据。在本场景中,我们主要涉及了四个数据库表:`goods`(商品)、`category`(商品分类)、`account`(用户账户)和`cart`(购物车)。接...

    经典mysql数据库知识整理

    - 分组统计:`SELECT age, COUNT(1) FROM emp GROUP BY age [WITH ROLLUP] HAVING COUNT(1) &gt; 1;` - 多表联合查询:`SELECT ename, name FROM emp LEFT JOIN emp1 ON emp.ename = emp1.name;` - 子查询:`SELECT ...

    mysql数据库操作

    creat table student(id int auto_increment primary key,name varchar(20) not null,age int not null,gender bit default 1,address varchar(20), isDelete bit default 0) 3、删除表 drop table 表名; 4、查看表...

    mysql 常用函数

    ### MySQL常用函数详解 #### 一、数学函数 在MySQL中,数学函数是数据库操作的基础之一,它们可以处理各种数值运算需求。 - **ABS(X)**:返回`X`的绝对值。 - 示例:`SELECT ABS(-5);` 返回 `5`。 - **BIN(X)*...

    MySQL入门很简单-学习笔记

    - **二进制**:`BIT`, `BINARY`, `VARBINARY`, `BLOB`。 #### 五、操作数据库 - **显示、创建、删除数据库**: - `SHOW DATABASES;` - `CREATE DATABASE database_name;` - `DROP DATABASE database_name;` - ...

    mysql常用函数

    ### MySQL常用函数详解 MySQL作为一款广泛使用的开源关系型数据库管理系统,在数据管理方面提供了丰富的功能。其中,函数是实现各种复杂操作的重要工具之一。本文将详细介绍MySQL中的几类常用函数,包括数学函数、...

    mysql常用字符串函数、字符串处理函数大全

    3. `BIT_LENGTH(str)`:返回二进制字符串`str`的长度,以位为单位。 4. `CHAR(n,... [using charset])`:此函数将每个参数`n`视为一个整数,并返回一个包含这些整数对应字符的字符串。NULL值会被忽略,所有参数都会...

    mysql常用函数.docx

    MySQL是一种广泛使用的开源关系型数据库管理系统,其丰富的函数库使得数据处理变得更加便捷高效。本文将详细介绍MySQL中的常用函数,分为数学函数、聚合函数、字符串函数和日期与时间函数四大类。 1. 数学函数: -...

    MySQL和数据表操作

    - 聚合函数:`SUM()`, `AVG()`, `COUNT()`, `MAX()`, `MIN()` - **非空约束(`NOT NULL`)的作用**: - `NOT NULL`约束用于指定一个字段不能有`NULL`值。 - 如果某字段被声明为`NOT NULL`,则在插入或更新数据时...

    数据库开发技术mysql

    13. SQL SERVER 2005 常用的数据类型包括 integer、bit、datetime、varchar 等,但不包括 distinct。 14. 视图提高了数据库系统的安全性。 15. 数据库中数据的正确性、有效性和相容性称为完整性。 16. SQL 中的主...

Global site tag (gtag.js) - Google Analytics