BIT_OR() 比特或操作;
00001111 | 00001101 = 00001111 BIT_OR(2<<2)
2<<2 = 00001000
BIT_OR(00001000)
然而函数只允许一个参数 那问题就产生了 函数是怎么操作的?00001000和哪个数'|'呢
00001111 | 00001101 = 00001111 BIT_OR(2<<2)
2<<2 = 00001000
BIT_OR(00001000)
然而函数只允许一个参数 那问题就产生了 函数是怎么操作的?00001000和哪个数'|'呢
如select bit_or(a) from(select 15 a union select 13 a) t,15 or 13结果是15
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 |
+------+-------+------+
我也是个初学者,还是没有明白,楼上能解释一下我的这个例子结果是怎么得出的吗?
先谢了!:)
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 |
+------+-------+------+
我也是个初学者,还是没有明白,楼上能解释一下我的这个例子结果是怎么得出的吗?
先谢了!:)
这样‘1左移1位’与‘1左移20位’与‘1左移30位’,结果里含有3个比特位,所以返回的是3.