Open In App
Related Articles

BIT_AND() function in MySQL

Improve Article
Improve
Save Article
Save
Like Article
Like

BIT_AND() :

This function in MySQL is used to return the Bitwise AND of all bits in a given expression. It first converts all decimal values into binary values, and then perform bitwise and operation on those binary values.

The BIT_AND() function works by performing a bitwise AND operation on each pair of corresponding bits in the binary representation of the numbers. The result is a new binary number with a 1 in each position.

Note: that BIT_AND() can be used with any integer data type, including BIGINT, INT, MEDIUMINT, SMALLINT, and TINYINT.

Syntax :

BIT_AND(expr)

Parameter : 

This method accepts only one parameter.

  • expr – Input expression on which we want to apply BIT_AND function.

Returns :

It returns bitwise AND of all bits in a given expression.

Example-1 :

Working of the BIT_AND function in the columns of table

Creating an Employee Table – 

CREATE TABLE EmployeeDetails(

Employee_Id INT AUTO_INCREMENT,  
Employee_Name VARCHAR(100) NOT NULL,
Working_At VARCHAR(20) NOT NULL,
Work_Location  VARCHAR(20) NOT NULL,
Joining_Date DATE NOT NULL,
Annual_Income INT  NOT NULL,
PRIMARY KEY(Employee_Id )
);

Inserting the values into the table – 

INSERT INTO  
EmployeeDetails(Employee_Name , Working_At, Work_Location, Joining_Date, Annual_Income )

VALUES
('Amit Khan' , 'XYZ Digital' , 'Kolkata' ,'2019-10-06' , 350000 ) ,
('Shreetama Pal' , 'ABC Corp.' , 'Kolkata' ,'2018-12-16' , 500000 )  ,
('Aniket Sharma' , 'PQR Soln.' , 'Delhi' , '2020-01-11' ,300000 ) ,
('Maitree Jana' , 'XYZ Digital' , 'Kolkata' ,'2019-05-01' , 400000 ) ,
('Priyanka Ojha' , 'ABC Corp.' , 'Delhi' ,'2019-02-13' , 350000 ) ,
('Sayani Mitra' , 'XYZ Digital' , 'Kolkata' ,'2019-09-15' , 320000 ) ,
('Nitin Dey' , 'PQR Soln.' , 'Delhi' ,'2019-10-06' , 250000 ) ,
('Sujata Samanta' , 'PQR Soln.' , 'Kolkata' ,'2020-10-06' , 350000 ) ,
('Sudip Majhi' , 'ABC Corp.' , 'Delhi' ,'2018-10-30' , 600000 ) ,
('Sanjoy Kohli' , 'XYZ Digital' ,'Delhi' ,'2019-04-18' , 450000 ) ;

The table will look as follows.

Select * FROM EmployeeDetails;

Output :

EMPLOYEE_IDEMPLOYEE_NAMEWORKING_ATWORK_LOCATIONJOINING_DATEANNUAL_INCOME
1Amit KhanXYZ DigitalKolkata2019-10-06350000 
2Shreetama PalABC Corp.Kolkata2018-12-16500000
3Aniket SharmaPQR Soln.Delhi2020-01-11300000 
4Maitree JanaXYZ DigitalKolkata2019-05-01400000 
5Priyanka OjhaABC Corp.Delhi2019-02-13350000
6Sayani MitraXYZ DigitalKolkata2019-09-15320000 
7Nitin DeyPQR Soln.Delhi2019-10-06250000 
8Sujata SamantaPQR Soln.Kolkata2020-10-06350000 
9Sudip MajhiABC Corp.Delhi2018-10-30600000 
10Sanjoy KohliXYZ DigitalDelhi2019-04-18450000 

Now we will find the BIT_AND of annual income of all the employees company-wise from the “EmployeeDetails” table. 

SELECT Working_At, BIT_AND(Annual_Income) AS BITANDINCOME
FROM employeedetails group by Working_At;

Output :

WORKING_ATBITANDINCOME
XYZ Digital262144
ABC Corp.65792
PQR Soln.4096

Example-2 :

Now we will find the BIT_AND of annual income of all the employee location wise from the “EmployeeDetails” table. 

SELECT Work_Location, BIT_AND(Annual_Income) AS BITANDINCOME
FROM EmployeeDetails group by  Work_Location;

Output :

WORK_LOCATIONBITANDINCOME
Kolkata262144
Delhi0

Example-3 :

Creating a Student table –

CREATE TABLE StudentMarks
(
StudentId INT AUTO_INCREMENT,  
StudentName VARCHAR(100) NOT NULL,
Class VARCHAR(20) NOT NULL,
Roll INT NOT NULL,
Sub1Mark INT NOT NULL,
Sub2Mark INT NOT NULL,
Sub3Mark INT NOT NULL,
TotalMarks INT NOT NULL,
PRIMARY KEY(StudentId )
);

Inserting data into the Table –

INSERT INTO StudentMarks
(StudentName, Class, Roll, Sub1Mark, Sub2Mark, Sub3Mark, TotalMarks)
VALUES
('Amit Jana', 'V', 10100, 85, 80, 95, 260),
('Labanya Mallick', 'VI', 11000, 81, 89, 95, 265),
('Virat Sharma', 'VI', 12000, 75, 83, 90, 248),
('Sayani Samanta', 'V', 13000, 95, 90, 99, 284),
('Riyanka Panda', 'V', 14000, 70, 87, 88, 245),  
('Ritika Shah', 'VI', 15000, 78, 89, 90, 257);

The table will look as follows.

SELECT  * from StudentMarks;

Output :

STUDENTIDSTUDENTNAMECLASSROLLSUB1MARKSUB2MARKSUB3MARKTOTALMARKS
1Amit JanaV10100858095260
2Labanya MallickVI11000818995265
3Virat SharmaVI12000758390248
4Sayani SamantaV13000959099284
5Riyanka PandaV14000708788245
6Ritika ShahVI15000788990257

Now we will find the BIT_AND of total marks of all the student class wise from the “StudentMarks” table.

SELECT Class, BIT_AND(TotalMarks) AS BITANDMARKS
FROM StudentMarks group by Class;

Output :

CLASSBITANDMARKS
V4
VI0
Last Updated : 21 Apr, 2023
Like Article
Save Article
Similar Reads