MySQL 中的 BIT_COUNT()函数
MySQL 中的BIT_COUNT ()函数用于返回给定输入中活动的位数。活动位可以被计算为二进制数中的 1 数。
句法 :
BIT_COUNT(number)
参数:此方法只接受一个参数。
- 数字 -
输入我们要计算其活动位数的整数。
返回:它返回数字中设置的活动位的数量。
示例-1:
使用 BIT_COUNT函数查找数字 0 的活动位数。由于给定输入的等效二进制数为 0,因此等效二进制数中 1 的个数也是 0。因此,这里我们将得到 0 个有效位。
SELECT BIT_COUNT(0) AS ActiveBits;
输出 :ACTIVEBITS 0
示例 2 :
使用 BIT_COUNT函数查找数字 14 的活动位数。我们知道 14 的等效二进制表示是 1110。在这里我们可以看到 1 的数量是 3。所以,结果将是 3。
SELECT BIT_COUNT(14) AS ActiveBits;
输出 :ACTIVEBITS 3
示例 3 :
使用 BIT_COUNT函数查找以下二进制数的活动位数。由于下面例子中1的个数分别是0、1、4和7,所以我们将得到0、1、4和7个有效位的结果。
SELECT BIT_COUNT(b'0000') AS ActiveBits1,
BIT_COUNT(b'00100') AS ActiveBits2,
BIT_COUNT(b'01010101') AS ActiveBits3,
BIT_COUNT(b'1111111') AS ActiveBits4;
输出 :ACTIVEBITS1 ACTIVEBITS2 ACTIVEBITS3 ACTIVEBITS4 0 1 4 7
示例 4:
BIT_COUNT函数也可用于列数据。为了演示创建一个名为 HolidayDetails 的表。
CREATE TABLE HolidayDetails (
Holiday_id INT AUTO_INCREMENT,
YearDetails YEAR(4),
MonthDetails INT(2) UNSIGNED ZEROFILL,
DayDetails INT(2) UNSIGNED ZEROFILL,
PRIMARY KEY(Holiday_id));
将一些数据插入到 HolidayDetails 表中——
INSERT INTO HolidayDetails
(YearDetails, MonthDetails, DayDetails) VALUES
(2021, 1, 1), (2021, 1, 14),
(2021, 1, 26), (2021, 2, 19),
(2021, 2, 21), (2021, 3, 10);
因此,HolidayDetails 表如下:
SELECT * from HolidayDetails;
HOLIDAY_ID | YEARDETAILS | MONTHDETAILS | DAYDETAILS |
---|---|---|---|
1 | 2021 | 1 | 1 |
2 | 2021 | 1 | 14 |
3 | 2021 | 1 | 26 |
4 | 2021 | 2 | 19 |
5 | 2021 | 2 | 21 |
6 | 2021 | 3 | 10 |
现在我们要找出每个月的假期数——
SELECT YearDetails, MonthDetails,
BIT_COUNT(BIT_OR(1<
输出 :YEARDETAILS MONTHDETAILS NO_OF_HOLIDAYS 2021 01 3 2021 02 2 2021 03 2