Função MySQL BIT_OR()

Resumo : neste tutorial, você aprenderá como usar a BIT_OR()função MySQL para realizar uma operação OR bit a bit nos valores de uma coluna em uma tabela.

Introdução à função MySQL BIT_OR()

A BIT_OR()função é uma função agregada que executa uma operação OR bit a bit em valores em uma coluna de uma tabela.

O OR bit a bit usa padrões de dois bits de igual comprimento e executa o OR lógico inclusivo em cada par de bits correspondentes. Retorna 0 se ambos os bits forem 0, caso contrário, retorna 1.

Por exemplo, o seguinte ilustra como executar um OR bit a bit em 0101 (decimal 5) e 0011 (decimal 3), que resulta em 0111 (decimal 7):

0101 (decimal 5)
0011 (decimal 3)
----
0111 (decimal 7)

Aqui está a sintaxe básica da BIT_ORfunção:

SELECT BIT_OR(column_name)
FROM table_name;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Na prática, você usará a BIT_ORfunção para manipular dados em nível de bit, como sistemas de permissão.

Exemplo de função MySQL BIT_OR()

Primeiro, crie uma nova tabela chamada permissionsque tenha duas colunas user_ide permission_flags:

CREATE TABLE permissions (
    user_id INT PRIMARY KEY,
    permission_flags INT
);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Nesta tabela, user_ididentifica exclusivamente cada usuário e permission_flagsarmazena os sinalizadores de permissões do usuário como valores binários.

Segundo, insira algumas linhas na permissionstabela:

INSERT INTO permissions (user_id, permission_flags)
VALUES
    (1, 6),   -- Binary: 0110
    (2, 3),   -- Binary: 0011
    (3, 5);   -- Binary: 0101Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Terceiro, determine a permissão coletiva dos usuários com id 1 e 2 usando a BIT_ORfunção para combinar sinalizadores de permissão:

SELECT 
  BIT_OR(permission_flags) AS collective_permissions 
FROM 
  permissions 
WHERE 
  user_id IN (1, 2);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+------------------------+
| collective_permissions |
+------------------------+
|                      7 |
+------------------------+
1 row in set (0.00 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Quando aplicamos a operação OR bit a bit, o resultado será 0111, que corresponde ao valor decimal 7.

Isso significa que as permissões coletivas para os usuários 1 e 2 incluem os sinalizadores de permissão para leitura, gravação e possivelmente outras permissões (dependendo das definições específicas do sinalizador).

Resumo

  • Use o MySQL BIT_ORpara realizar operações bit a bit em valores em colunas da tabela.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *