w3resource

MySQL BIT_OR() function

BIT_OR() function

MySQL BIT_OR() function returns the bitwise OR of all bits in a given expression.

The calculation is performed on 64 bit precession.

If this function does not find a matching row, it returns 0.

What is Bitwise OR operation

After taking two bit patterns of equal length, it performs logical OR operation on each pair of corresponding bits (the first of each; the second of each; and so on).

In each pair, the result is 1 if the first bit is 1 OR the second bit is 1 OR both bits are 1, and otherwise the result is 0.

This function is useful in -

  • It calculates the bitwise OR of each bit position across multiple values.
  • In many applications, flags or bit fields are used to represent multiple binary options in a single value. The BIT_OR() function can be used to set (turn on) specific flags in a set of values.
  • The BIT_OR() function can be used to manipulate specific bits within binary values.
  • In MySQL, the BIT_OR() function can be useful in defining conditions within triggers or events based on bitwise operations.
  • The BIT_OR() function can combine or merge multiple values based on specific bitwise rules.
  • BIT_OR() can be used with the GROUP BY clause to aggregate data based on a specific column's bitwise OR results.
  • The BIT_OR() function can help analyze common attributes across a subset of records.
  • The BIT_OR() function can be used to create checksums or hash values based on certain bit patterns.

Syntax

BIT_OR(expr)

Where expr is a given expression.

MySQL Version: 8.0

Example: MySQL BIT_OR() function

The following MySQL statement performs Bitwise OR operation on the values of book_price column. A grouping on book_id column is also performed.

Sample table: book_mast


Code:


-- This SQL query calculates the bitwise OR of book prices for each book.
SELECT book_id, BIT_OR('book_price') AS BITS -- Selects the book ID and calculates the bitwise OR of 'book_price' for each book, aliasing the result as 'BITS'
FROM book_mast -- Specifies the table from which to retrieve data (book_mast table)
GROUP BY book_id; -- Groups the results by book ID, so that the bitwise OR is calculated for each book separately

Explanation:

  • This SQL query retrieves data from the book_mast table.

  • It calculates the bitwise OR of 'book_price' for each book.

  • The GROUP BY clause ensures that the results are grouped by book ID, allowing for separate bitwise OR calculations to be performed for each book.

  • Here's how the process works:

    • The query selects the book ID (book_id) and calculates the bitwise OR of 'book_price' for each book.

    • It groups the results by book ID using GROUP BY book_id, ensuring that the bitwise OR is calculated separately for each book.

    • Finally, the query returns the book ID and the bitwise OR result for each book, aliased as 'BITS'. However, there seems to be a mistake in the code where 'book_price' is used as a string, which likely wasn't the intention. It should be a column name from the table.

Output:

mysql> SELECT book_id, BIT_OR('book_price') AS BITS from book_mast group by book_id;
+---------+------+
| book_id | BITS |
+---------+------+
| BK001   |    0 | 
| BK002   |    0 | 
| BK003   |    0 | 
| BK004   |    0 | 
| BK005   |    0 | 
| BK006   |    0 | 
| BK007   |    0 | 
| BK008   |    0 | 
| BK009   |    0 | 
| BK010   |    0 | 
| BK011   |    0 | 
| BK012   |    0 | 
| BK013   |    0 | 
| BK014   |    0 | 
| BK015   |    0 | 
| BK016   |    0 | 
+---------+------+
16 rows in set, 16 warnings (0.00 sec)

Previous: BIT_AND()
Next: BIT_XOR()



Follow us on Facebook and Twitter for latest update.