Função MySQL BIT_AND()

Resumo : neste tutorial, você aprenderá como usar a BIT_ANDfunçã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_ide 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_permissionstabela:

INSERT INTO user_permissions (user_id, permission_mask)
VALUES
    (1, 7),  -- Binary: 0111
    (2, 3),  -- Binary: 0011
    (3, 5);  -- Binary: 0101Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Neste exemplo, usamos três linhas, cada uma com a user_ide a permission_maskrepresentados 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.

Deixe um comentário

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