Resumo : neste tutorial, você aprenderá como usar a BIT_AND
função MySQL para executar AND bit a bit de todos os bits em uma coluna de uma tabela.
Introdução à função MySQL BIT_AND()
A função MySQL BIT_AND()
é uma função agregada que executa uma operação AND bit a bit de todos os bits em uma coluna de uma tabela.
O AND bit a bit compara duas strings binárias do mesmo comprimento. Ele examina cada par de bits correspondentes e executa a operação lógica AND neles. Se ambos os bits forem 1, o resultado será 1, caso contrário, o resultado será 0.
O exemplo a seguir executa um AND bit a bit em dois números binários: 0101 (decimal 5) e 0011 (decimal 3) que resulta em 0001 (decimal 1):
0101 (decimal 5)
0011 (decimal 3)
----
0001 (decimal 1)
Aqui está a sintaxe básica da BIT_AND()
função:
SELECT
BIT_AND(column_name)
FROM
table_name;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Na prática, você pode armazenar dados em formato binário ou usar sinalizadores representados como bits individuais.
Por exemplo, em permissões ou controle de acesso, cada bit pode representar uma permissão específica, como leitura, gravação e execução. A BIT_AND()
função permite manipular dados de permissão em nível de bit com mais eficiência.
Exemplo de função MySQL BIT_AND()
Primeiro, crie uma nova tabela user_permissions
que tenha duas colunas user_id
e permission_mask
:
CREATE TABLE user_permissions (
user_id INT PRIMARY KEY,
permission_mask INT
);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Segundo, insira algumas linhas na user_permissions
tabela:
INSERT INTO user_permissions (user_id, permission_mask)
VALUES
(1, 7), -- Binary: 0111
(2, 3), -- Binary: 0011
(3, 5); -- Binary: 0101
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Neste exemplo, usamos três linhas, cada uma com a user_id
e a permission_mask
representados em formato binário.
Terceiro, encontre as permissões comuns entre os usuários que usam a BIT_AND()
função:
SELECT
BIT_AND(permission_mask) AS common_permissions
FROM
user_permissions;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+--------------------+
| common_permissions |
+--------------------+
| 1 |
+--------------------+
1 row in set (0.00 sec)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
O resultado de BIT_AND(permission_mask)
is 1
, que corresponde ao binário 0001
. Isso significa que a permissão comum dos três usuários é a primeira permissão (o bit mais à direita).
Resumo
- Use a
BIT_AND()
função MySQL para retornar o AND bit a bit de todos os bits em uma coluna de uma tabela.