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_OR
funçã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_OR
funçã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 permissions
que tenha duas colunas user_id
e 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_id
identifica exclusivamente cada usuário e permission_flags
armazena os sinalizadores de permissões do usuário como valores binários.
Segundo, insira algumas linhas na permissions
tabela:
INSERT INTO permissions (user_id, permission_flags)
VALUES
(1, 6), -- Binary: 0110
(2, 3), -- Binary: 0011
(3, 5); -- Binary: 0101
Linguagem 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_OR
funçã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_OR
para realizar operações bit a bit em valores em colunas da tabela.