當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


MySQL BIT_COUNT()用法及代碼示例

MySQL中的BIT_COUNT()函數用於返回給定輸入中有效的位數。活動位可以算作二進製數中的1。

用法:

BIT_COUNT(number)

參數:此方法僅接受一個參數。

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

輸出:

活動位1 活動位2 活動位3 活動位4
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<<DayDetails)) AS No_Of_Holidays 
FROM HolidayDetails 
GROUP By YearDetails, MonthDetails;

輸出:

YEARDETAILS MONTHDETAILS NO_OF_HOLIDAYS
2021 01 3
2021 02 2
2021 03 2

相關用法


注:本文由純淨天空篩選整理自jana_sayantan大神的英文原創作品 BIT_COUNT() function in MySQL。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。